From: Marcin Gibula <m.gibula@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: 3.16.1 - general protection fault
Date: Wed, 24 Sep 2014 18:44:08 +0200 [thread overview]
Message-ID: <CAGKO+35+H3MmkaN1m_PfHi0XhbRvtnSBqm3PDmOhs5YBmAZ1jg@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 4208 bytes --]
Hi,
I've been playing with 3.16 kernel on my test machine as a KVM
hypervisor and encountered the following crash twice (almost identical
backtraces).
Sep 24 09:39:31 dev4 kernel: general protection fault: 0000 [#1] SMP
Sep 24 09:39:31 dev4 kernel: Modules linked in: ip6table_filter
ip6_tables iptable_filter ebt_arp act_police cls_u32 sch_ingress
cls_fw sch_sfq sch_htb ebt_dnat ebt_ip ebtable_nat ebtables
iptable_raw xt_CT x86_pkg_temp_thermal mpt2sas raid_cla
ss scsi_transport_sas i2c_i801 igb i2c_algo_bit megaraid_sas
Sep 24 09:39:31 dev4 kernel: CPU: 7 PID: 1892 Comm: kworker/7:1 Not
tainted 3.16.1-gentoo #2
Sep 24 09:39:31 dev4 kernel: Hardware name: Supermicro
X9DRW-7TPF+/X9DRW-7TPF+, BIOS 3.0 07/24/2013
Sep 24 09:39:31 dev4 kernel: Workqueue: rpciod rpc_async_schedule
Sep 24 09:39:31 dev4 kernel: task: ffff88102865de80 ti:
ffff88102456c000 task.ti: ffff88102456c000
Sep 24 09:39:31 dev4 kernel: RIP: 0010:[<ffffffff8113421c>]
[<ffffffff8113421c>] __kmalloc_node_track_caller+0xac/0x100
Sep 24 09:39:31 dev4 kernel: RSP: 0018:ffff88102456f958 EFLAGS: 00010246
Sep 24 09:39:31 dev4 kernel: RAX: 0000000000000000 RBX:
ffff8804fa153600 RCX: 000000000040471f
Sep 24 09:39:31 dev4 kernel: RDX: 000000000040471e RSI:
0000000000000000 RDI: 00000000000147c0
Sep 24 09:39:31 dev4 kernel: RBP: ffff88102456f988 R08:
ffff88103fcf47c0 R09: ffffffff8151d1c9
Sep 24 09:39:31 dev4 kernel: R10: ffff88102456fc70 R11:
0000000000000000 R12: 002560400038002c
Sep 24 09:39:31 dev4 kernel: R13: ffff88103f803400 R14:
00000000ffffffff R15: 0000000000010220
Sep 24 09:39:31 dev4 kernel: FS: 0000000000000000(0000)
GS:ffff88103fce0000(0000) knlGS:0000000000000000
Sep 24 09:39:31 dev4 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Sep 24 09:39:31 dev4 kernel: CR2: 00007fcdf3508000 CR3:
0000001d41163000 CR4: 00000000001427e0
Sep 24 09:39:31 dev4 kernel: Stack:
Sep 24 09:39:31 dev4 kernel: ffffffff8151d1f9 ffff8804fa153600
ffff88102456f9e7 0000000000000020
Sep 24 09:39:31 dev4 kernel: 0000000000000800 00000000ffffffff
ffff88102456f9c8 ffffffff8151d11c
Sep 24 09:39:31 dev4 kernel: ffff88103fcf4790 ffff8804fa153600
0000000000000020 00000000ffffffff
Sep 24 09:39:31 dev4 kernel: Call Trace:
Sep 24 09:39:31 dev4 kernel: [<ffffffff8151d1f9>] ? __alloc_skb+0x79/0x1c0
Sep 24 09:39:31 dev4 kernel: [<ffffffff8151d11c>]
__kmalloc_reserve.isra.41+0x2c/0x90
Sep 24 09:39:31 dev4 kernel: [<ffffffff8151d1f9>] __alloc_skb+0x79/0x1c0
Sep 24 09:39:31 dev4 kernel: [<ffffffff81589fb4>] sk_stream_alloc_skb+0x34/0x100
Sep 24 09:39:31 dev4 kernel: [<ffffffff8158ad07>] tcp_sendmsg+0x667/0xd20
Sep 24 09:39:31 dev4 kernel: [<ffffffff815b11c2>] inet_sendmsg+0x42/0xb0
Sep 24 09:39:31 dev4 kernel: [<ffffffff81513380>] sock_sendmsg+0xa0/0xc0
Sep 24 09:39:31 dev4 kernel: [<ffffffff810a6f31>] ? load_balance+0x151/0x850
Sep 24 09:39:31 dev4 kernel: [<ffffffff815133d2>] kernel_sendmsg+0x32/0x40
Sep 24 09:39:31 dev4 kernel: [<ffffffff81622a09>] xs_send_kvec+0x89/0xa0
Sep 24 09:39:31 dev4 kernel: [<ffffffff81622e5e>] xs_sendpages+0x5e/0x1f0
Sep 24 09:39:31 dev4 kernel: [<ffffffff81623057>] xs_tcp_send_request+0x67/0x120
Sep 24 09:39:31 dev4 kernel: [<ffffffff81620cd0>] xprt_transmit+0x50/0x260
Sep 24 09:39:31 dev4 kernel: [<ffffffff8161dfb8>] call_transmit+0x1a8/0x250
Sep 24 09:39:31 dev4 kernel: [<ffffffff816255a6>] __rpc_execute+0x56/0x280
Sep 24 09:39:31 dev4 kernel: [<ffffffff8108a208>] ?
pwq_activate_delayed_work+0x28/0x40
Sep 24 09:39:31 dev4 kernel: [<ffffffff816257f1>] rpc_async_schedule+0x21/0x30
Sep 24 09:39:31 dev4 kernel: [<ffffffff8108c81b>] process_one_work+0x13b/0x390
Sep 24 09:39:31 dev4 kernel: [<ffffffff8108d17b>] worker_thread+0x11b/0x510
Sep 24 09:39:31 dev4 kernel: [<ffffffff8108d060>] ?
cancel_delayed_work_sync+0x10/0x10
Sep 24 09:39:31 dev4 kernel: [<ffffffff81092b44>] kthread+0xc4/0xe0
Sep 24 09:39:31 dev4 kernel: [<ffffffff81092a80>] ?
kthread_create_on_node+0x170/0x170
This machine is serving as NFS client and KVM hypervisor. I'm still
not sure how to trigger it reliably (right now, I just have to run
ubuntu instalation in VM guest multiple times and sometimes it
triggers).
Attaching .config, slub.s and disassembled __kmalloc_node_track_caller function.
--
mg
[-- Attachment #2: slub-disassembly.txt --]
[-- Type: text/plain, Size: 4451 bytes --]
Dump of assembler code for function __kmalloc_node_track_caller:
0x0000000000005500 <+0>: push %rbp
0x0000000000005501 <+1>: mov %rsp,%rbp
0x0000000000005504 <+4>: push %r15
0x0000000000005506 <+6>: mov %esi,%r15d
0x0000000000005509 <+9>: push %r14
0x000000000000550b <+11>: mov %edx,%r14d
0x000000000000550e <+14>: push %r13
0x0000000000005510 <+16>: push %r12
0x0000000000005512 <+18>: push %rbx
0x0000000000005513 <+19>: sub $0x8,%rsp
0x0000000000005517 <+23>: cmp $0x2000,%rdi
0x000000000000551e <+30>: mov %rcx,-0x30(%rbp)
0x0000000000005522 <+34>: ja 0x55e4 <__kmalloc_node_track_caller+228>
0x0000000000005528 <+40>: callq 0x552d <__kmalloc_node_track_caller+45>
0x000000000000552d <+45>: cmp $0x10,%rax
0x0000000000005531 <+49>: mov %rax,%r13
0x0000000000005534 <+52>: jbe 0x558e <__kmalloc_node_track_caller+142>
0x0000000000005536 <+54>: mov 0x0(%r13),%r8
0x000000000000553a <+58>: add %gs:0x0,%r8
0x0000000000005543 <+67>: mov 0x8(%r8),%rdx
0x0000000000005547 <+71>: mov (%r8),%r12
0x000000000000554a <+74>: mov 0x10(%r8),%rax
0x000000000000554e <+78>: test %r12,%r12
0x0000000000005551 <+81>: je 0x556d <__kmalloc_node_track_caller+109>
0x0000000000005553 <+83>: test %rax,%rax
0x0000000000005556 <+86>: je 0x556d <__kmalloc_node_track_caller+109>
0x0000000000005558 <+88>: cmp $0xffffffff,%r14d
0x000000000000555c <+92>: je 0x55a0 <__kmalloc_node_track_caller+160>
0x000000000000555e <+94>: mov (%rax),%rax
0x0000000000005561 <+97>: shr $0x27,%rax
0x0000000000005565 <+101>: and $0x3f,%eax
0x0000000000005568 <+104>: cmp %eax,%r14d
0x000000000000556b <+107>: je 0x55a0 <__kmalloc_node_track_caller+160>
0x000000000000556d <+109>: mov -0x30(%rbp),%rcx
0x0000000000005571 <+113>: mov %r15d,%esi
0x0000000000005574 <+116>: mov %r14d,%edx
0x0000000000005577 <+119>: mov %r13,%rdi
0x000000000000557a <+122>: callq 0x557f <__kmalloc_node_track_caller+127>
0x000000000000557f <+127>: and $0x8000,%r15d
0x0000000000005586 <+134>: mov %rax,%r12
0x0000000000005589 <+137>: jne 0x55f2 <__kmalloc_node_track_caller+242>
0x000000000000558b <+139>: mov %r12,%rax
0x000000000000558e <+142>: add $0x8,%rsp
0x0000000000005592 <+146>: pop %rbx
0x0000000000005593 <+147>: pop %r12
0x0000000000005595 <+149>: pop %r13
0x0000000000005597 <+151>: pop %r14
0x0000000000005599 <+153>: pop %r15
0x000000000000559b <+155>: pop %rbp
0x000000000000559c <+156>: retq
0x000000000000559d <+157>: nopl (%rax)
0x00000000000055a0 <+160>: movslq 0x20(%r13),%rax
0x00000000000055a4 <+164>: lea 0x1(%rdx),%rcx
0x00000000000055a8 <+168>: mov 0x0(%r13),%rdi
0x00000000000055ac <+172>: mov (%r12,%rax,1),%rbx
0x00000000000055b0 <+176>: mov %r12,%rax
0x00000000000055b3 <+179>: lea (%rdi),%rsi
0x00000000000055b6 <+182>: callq 0x55bb <__kmalloc_node_track_caller+187>
0x00000000000055bb <+187>: test %al,%al
0x00000000000055bd <+189>: je 0x5536 <__kmalloc_node_track_caller+54>
0x00000000000055c3 <+195>: movslq 0x20(%r13),%rax
0x00000000000055c7 <+199>: and $0x8000,%r15d
0x00000000000055ce <+206>: prefetcht0 (%rbx,%rax,1)
0x00000000000055d2 <+210>: je 0x558b <__kmalloc_node_track_caller+139>
0x00000000000055d4 <+212>: movslq 0x1c(%r13),%rdx
0x00000000000055d8 <+216>: xor %esi,%esi
0x00000000000055da <+218>: mov %r12,%rdi
0x00000000000055dd <+221>: callq 0x55e2 <__kmalloc_node_track_caller+226>
0x00000000000055e2 <+226>: jmp 0x558b <__kmalloc_node_track_caller+139>
0x00000000000055e4 <+228>: callq 0x55e9 <__kmalloc_node_track_caller+233>
0x00000000000055e9 <+233>: nopl 0x0(%rax)
0x00000000000055f0 <+240>: jmp 0x558e <__kmalloc_node_track_caller+142>
0x00000000000055f2 <+242>: test %rax,%rax
0x00000000000055f5 <+245>: jne 0x55d4 <__kmalloc_node_track_caller+212>
0x00000000000055f7 <+247>: xor %eax,%eax
0x00000000000055f9 <+249>: jmp 0x558e <__kmalloc_node_track_caller+142>
[-- Attachment #3: kernel.config --]
[-- Type: application/octet-stream, Size: 80364 bytes --]
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.16.1-gentoo Kernel Configuration
#
#
# Gentoo Linux
#
CONFIG_GENTOO_LINUX=y
CONFIG_GENTOO_LINUX_UDEV=y
#
# Support for init systems, system and service managers
#
CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
# CONFIG_GENTOO_LINUX_INIT_SYSTEMD is not set
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_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
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_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_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
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 is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# 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 is not set
CONFIG_FHANDLE=y
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=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=y
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_RCU_USER_QS is not set
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_NOCB_CPU is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_SWAP_ENABLED=y
# CONFIG_MEMCG_KMEM is not set
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_NET_NS=y
# CONFIG_SCHED_AUTOGROUP is not set
# 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_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_EXPERT is not set
CONFIG_UID16=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
#
# 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_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=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_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=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_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=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_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
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_SOFT_DIRTY=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
# CONFIG_BLK_DEV_THROTTLING is not set
# CONFIG_BLK_CMDLINE_PARSER is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_AIX_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
CONFIG_BLOCK_COMPAT=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_PREEMPT_NOTIFIERS=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_RWSEM_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUE_RWLOCK=y
CONFIG_QUEUE_RWLOCK=y
CONFIG_FREEZER=y
#
# Processor type and features
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_X2APIC=y
# CONFIG_X86_MPPARSE is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_INTEL_LPSS is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_HYPERVISOR_GUEST is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_MATOM is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_P6_NOP=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=64
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
# CONFIG_X86_MCE_AMD is not set
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
# CONFIG_I8K is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
# CONFIG_MICROCODE_INTEL_EARLY is not set
# CONFIG_MICROCODE_AMD_EARLY is not set
# CONFIG_MICROCODE_EARLY is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DIRECT_GBPAGES=y
CONFIG_NUMA=y
# CONFIG_AMD_NUMA is not set
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
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_ALLOC_MEM_MAP_TOGETHER=y
# CONFIG_SPARSEMEM_VMEMMAP is not set
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
# CONFIG_MOVABLE_NODE is not set
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
# CONFIG_BALLOON_COMPACTION is not set
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_BOUNCE is not set
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 is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
# CONFIG_CMA is not set
# CONFIG_ZBUD is not set
# CONFIG_ZSMALLOC is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION 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_EFI is not set
CONFIG_SECCOMP=y
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
# CONFIG_HOTPLUG_CPU is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
#
# Power management and ACPI options
#
# CONFIG_SUSPEND is not set
# CONFIG_HIBERNATION is not set
# CONFIG_PM_RUNTIME is not set
CONFIG_ACPI=y
# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_EC_DEBUGFS is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_IPMI=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
# CONFIG_ACPI_APEI_EINJ is not set
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
# CONFIG_ACPI_EXTLOG is not set
# CONFIG_SFI is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# CPU Idle
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
CONFIG_INTEL_IDLE=y
#
# Memory power savings
#
# CONFIG_I7300_IDLE is not set
#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
# CONFIG_PCIEAER is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_HT_IRQ is not set
CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
#
# PCI host controller drivers
#
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_RAPIDIO is not set
# CONFIG_X86_SYSFB is not set
#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
# CONFIG_X86_X32 is not set
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_IOSF_MBI=m
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
# CONFIG_XFRM_USER is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_FIB_TRIE_STATS is not set
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
# CONFIG_IP_ROUTE_VERBOSE is not set
CONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE_DEMUX=y
CONFIG_NET_IP_TUNNEL=y
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_INET_UDP_DIAG is not set
CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_BIC is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=y
# CONFIG_TCP_CONG_HTCP is not set
# CONFIG_TCP_CONG_HSTCP is not set
# CONFIG_TCP_CONG_HYBLA is not set
# CONFIG_TCP_CONG_VEGAS is not set
# CONFIG_TCP_CONG_SCALABLE is not set
# CONFIG_TCP_CONG_LP is not set
# CONFIG_TCP_CONG_VENO is not set
# CONFIG_TCP_CONG_YEAH is not set
# CONFIG_TCP_CONG_ILLINOIS is not set
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=y
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_BEET is not set
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
# CONFIG_IPV6_SIT is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_GRE is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_ZONES is not set
CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
# CONFIG_NF_CONNTRACK_FTP is not set
# CONFIG_NF_CONNTRACK_H323 is not set
# CONFIG_NF_CONNTRACK_IRC is not set
# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
# CONFIG_NF_CONNTRACK_SIP is not set
# CONFIG_NF_CONNTRACK_TFTP is not set
# CONFIG_NF_CT_NETLINK is not set
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
# CONFIG_NF_NAT_FTP is not set
# CONFIG_NF_NAT_IRC is not set
# CONFIG_NF_NAT_SIP is not set
# CONFIG_NF_NAT_TFTP is not set
CONFIG_NETFILTER_SYNPROXY=m
# CONFIG_NF_TABLES is not set
CONFIG_NETFILTER_XTABLES=y
#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=y
CONFIG_NETFILTER_XT_CONNMARK=y
CONFIG_NETFILTER_XT_SET=m
#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=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 is not set
CONFIG_NETFILTER_XT_TARGET_TRACE=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 is not set
# 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 is not set
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_L2TP is not set
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_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=y
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_NETPORTNET=y
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=y
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
# CONFIG_IP_VS is not set
#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=y
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_IPTABLES=y
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 is not set
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT_IPV4=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
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 is not set
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV6 is not set
# CONFIG_NF_CONNTRACK_IPV6 is not set
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 is not set
# CONFIG_IP6_NF_MATCH_RT is not set
# CONFIG_IP6_NF_TARGET_HL is not set
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 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 is not set
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_ULOG=m
CONFIG_BRIDGE_EBT_NFLOG=m
# CONFIG_IP_DCCP 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_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
CONFIG_STP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_BRIDGE_VLAN_FILTERING is not set
CONFIG_HAVE_NET_DSA=y
CONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_VLAN_8021Q_MVRP is not set
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=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_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_NETEM is not set
# CONFIG_NET_SCH_DRR is not set
CONFIG_NET_SCH_MQPRIO=m
# CONFIG_NET_SCH_CHOKE is not set
# CONFIG_NET_SCH_QFQ is not set
# CONFIG_NET_SCH_CODEL is not set
# CONFIG_NET_SCH_FQ_CODEL 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 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 is not set
# CONFIG_NET_CLS_CGROUP is not set
# CONFIG_NET_CLS_BPF 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_IPSET=y
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_IPT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
# CONFIG_NET_ACT_SIMP is not set
# CONFIG_NET_ACT_SKBEDIT is not set
# CONFIG_NET_ACT_CSUM is not set
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_MMAP is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_NET_MPLS_GSO is not set
# CONFIG_HSR is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
# CONFIG_CGROUP_NET_PRIO is not set
# CONFIG_CGROUP_NET_CLASSID is not set
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_JIT=y
CONFIG_NET_FLOW_LIMIT=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
CONFIG_HAVE_BPF_JIT=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/udevadm"
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
# CONFIG_DMA_SHARED_BUFFER is not set
#
# Bus devices
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set
#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_BLK_DEV_SKD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
CONFIG_ATA_OVER_ETH=m
# CONFIG_VIRTIO_BLK is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# 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 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1780 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_BMP085_I2C is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_CB710_CORE is not set
#
# Texas Instruments shared transport line discipline
#
# CONFIG_SENSORS_LIS3_I2C is not set
#
# Altera FPGA firmware download module
#
# CONFIG_ALTERA_STAPL is not set
# CONFIG_INTEL_MEI is not set
# CONFIG_INTEL_MEI_ME is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_VMWARE_VMCI is not set
#
# Intel MIC Host Driver
#
# CONFIG_INTEL_MIC_HOST is not set
#
# Intel MIC Card Driver
#
# CONFIG_INTEL_MIC_CARD is not set
# CONFIG_GENWQE is not set
# CONFIG_ECHO 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_TGT=m
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
CONFIG_SCSI_SCAN_ASYNC=y
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_FC_TGT_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
CONFIG_SCSI_SAS_HOST_SMP=y
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_SCSI_SRP_TGT_ATTRS=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=m
CONFIG_ISCSI_BOOT_SYSFS=m
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_SCSI_BNX2X_FCOE is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
CONFIG_SCSI_HPSA=m
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_ESAS2R is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
# CONFIG_SCSI_MPT2SAS_LOGGING is not set
CONFIG_SCSI_MPT3SAS=m
CONFIG_SCSI_MPT3SAS_MAX_SGE=128
# CONFIG_SCSI_MPT3SAS_LOGGING is not set
# CONFIG_SCSI_UFSHCD is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_VMWARE_PVSCSI is not set
# CONFIG_LIBFC is not set
# CONFIG_LIBFCOE is not set
# CONFIG_FCOE is not set
# CONFIG_FCOE_FNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_ISCI is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_SCSI_BFA_FC is not set
# CONFIG_SCSI_VIRTIO is not set
# CONFIG_SCSI_CHELSIO_FCOE is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_AUTODETECT=y
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=y
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
CONFIG_BCACHE=y
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=y
# CONFIG_DM_CRYPT is not set
CONFIG_DM_SNAPSHOT=y
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
# CONFIG_DM_ERA is not set
CONFIG_DM_MIRROR=m
# CONFIG_DM_LOG_USERSPACE is not set
# CONFIG_DM_RAID is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
CONFIG_DM_UEVENT=y
# CONFIG_DM_FLAKEY is not set
# CONFIG_DM_VERITY is not set
# CONFIG_DM_SWITCH is not set
# CONFIG_TARGET_CORE is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_BONDING=y
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_FC is not set
# CONFIG_IFB is not set
# CONFIG_NET_TEAM is not set
CONFIG_MACVLAN=y
CONFIG_MACVTAP=y
CONFIG_VXLAN=y
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_TUN=y
CONFIG_VETH=y
# CONFIG_VIRTIO_NET is not set
# CONFIG_NLMON is not set
# CONFIG_ARCNET is not set
#
# CAIF transport drivers
#
CONFIG_VHOST_NET=y
CONFIG_VHOST_RING=y
CONFIG_VHOST=y
#
# Distributed Switch Architecture drivers
#
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
# CONFIG_NET_DSA_MV88E6131 is not set
# CONFIG_NET_DSA_MV88E6123_61_65 is not set
CONFIG_ETHERNET=y
CONFIG_MDIO=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_NET_VENDOR_AMD is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_CALXEDA_XGMAC is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
# CONFIG_CX_ECAT is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EXAR is not set
# CONFIG_NET_VENDOR_HP is not set
CONFIG_NET_VENDOR_INTEL=y
# CONFIG_E100 is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
CONFIG_IGB=m
CONFIG_IGB_HWMON=y
CONFIG_IGB_DCA=y
# CONFIG_IGBVF is not set
# CONFIG_IXGB is not set
CONFIG_IXGBE=y
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
# CONFIG_IXGBEVF is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_NET_VENDOR_I825XX is not set
# CONFIG_IP1000 is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_PACKET_ENGINE is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_REALTEK is not set
# CONFIG_SH_ETH is not set
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_SFC is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN 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_PHYLIB is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_RTL8152 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_WLAN is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
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_LKKBD=m
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 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=m
# CONFIG_KEYBOARD_OPENCORES is not set
CONFIG_KEYBOARD_STOWAWAY=m
CONFIG_KEYBOARD_SUNKBD=m
CONFIG_KEYBOARD_XTKBD=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
CONFIG_MOUSE_PS2_TOUCHKIT=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_CYAPA is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_MOUSE_SYNAPTICS_USB is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_BMA150 is not set
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_MPU3050 is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_KXTJ9 is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 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_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
#
# KCopy
#
CONFIG_KCOPY=m
# CONFIG_DEVKMEM is not set
#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
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 is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MFD_HSU is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# 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_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_VIRTIO_CONSOLE is not set
CONFIG_IPMI_HANDLER=y
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
CONFIG_IPMI_DEVICE_INTERFACE=y
CONFIG_IPMI_SI=y
# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
CONFIG_IPMI_WATCHDOG=y
CONFIG_IPMI_POWEROFF=y
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_INTEL=y
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_HW_RANDOM_VIRTIO is not set
CONFIG_NVRAM=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=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 is not set
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
#
# ACPI drivers
#
CONFIG_I2C_SCMI=y
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set
#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_STUB 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 is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
#
# PPS support
#
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
# CONFIG_NTP_PPS is not set
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set
#
# PPS generators support
#
#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 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_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_POWER_RESET is not set
# CONFIG_POWER_AVS is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_IBMAEM is not set
# CONFIG_SENSORS_IBMPEX is not set
CONFIG_SENSORS_CORETEMP=y
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_HTU21 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NTC_THERMISTOR is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH56XX_COMMON is not set
# CONFIG_SENSORS_SCH5627 is not set
# CONFIG_SENSORS_SCH5636 is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS1015 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
#
# ACPI drivers
#
CONFIG_SENSORS_ACPI_POWER=y
# CONFIG_SENSORS_ATK0110 is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=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_GOV_FAIR_SHARE is not set
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_PKG_TEMP_THERMAL=m
# CONFIG_ACPI_INT3403_THERMAL is not set
# CONFIG_INTEL_SOC_DTS_THERMAL is not set
#
# Texas Instruments thermal drivers
#
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_F71808E_WDT is not set
# CONFIG_SP5100_TCO is not set
# CONFIG_SBC_FITPC2_WATCHDOG is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_IE6XX_WDT is not set
# CONFIG_ITCO_WDT is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
CONFIG_HP_WATCHDOG=y
CONFIG_HPWDT_NMI_DECODING=y
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_NV_TCO is not set
# CONFIG_60XX_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_VIA_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set
#
# Multifunction device drivers
#
CONFIG_MFD_CORE=m
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_LPC_ICH is not set
CONFIG_LPC_SCH=m
# 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_MAX77686 is not set
# CONFIG_MFD_MAX77693 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_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_RTSX_USB 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 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_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS6586X 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_TC3589X is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_VGA_SWITCHEROO is not set
#
# Direct Rendering Manager
#
# CONFIG_DRM is not set
#
# Frame buffer Devices
#
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# CONFIG_VGASTATE is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set
#
# HID support
#
CONFIG_HID=y
# CONFIG_HID_BATTERY_STRENGTH is not set
CONFIG_HIDRAW=y
# CONFIG_UHID is not set
CONFIG_HID_GENERIC=y
#
# Special HID drivers
#
CONFIG_HID_A4TECH=y
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_APPLEIR is not set
# CONFIG_HID_AUREAL is not set
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
# CONFIG_HID_DRAGONRISE is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
CONFIG_HID_EZKEY=y
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_HUION is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set
# CONFIG_HID_TWINHAN is not set
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LENOVO_TPKBD is not set
CONFIG_HID_LOGITECH=y
# CONFIG_HID_LOGITECH_DJ is not set
# 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 is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
# CONFIG_HID_MULTITOUCH is not set
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
# CONFIG_HID_PANTHERLORD is not set
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
# CONFIG_HID_SAMSUNG is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_STEELSERIES is not set
# CONFIG_HID_SUNPLUS is not set
# CONFIG_HID_RMI is not set
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
# CONFIG_HID_TOPSEED is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_XINMO is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
# CONFIG_HID_SENSOR_HUB is not set
#
# USB HID support
#
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
CONFIG_USB_HIDDEV=y
#
# I2C HID support
#
# CONFIG_I2C_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_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
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_ISP1760_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_FUSBH200_HCD is not set
# CONFIG_USB_FOTG210_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_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HCD_TEST_MODE is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set
#
# 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 is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
# CONFIG_USB_UAS is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
# CONFIG_USB_EZUSB_FX2 is not set
# CONFIG_USB_HSIC_USB3503 is not set
#
# USB Physical Layer drivers
#
# CONFIG_USB_PHY is not set
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_SAMSUNG_USB2PHY is not set
# CONFIG_SAMSUNG_USB3PHY is not set
# CONFIG_USB_ISP1301 is not set
# CONFIG_USB_GADGET is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=y
CONFIG_EDAC_GHES=y
# CONFIG_EDAC_E752X is not set
# CONFIG_EDAC_I82975X is not set
# CONFIG_EDAC_I3000 is not set
# CONFIG_EDAC_I3200 is not set
# CONFIG_EDAC_X38 is not set
# CONFIG_EDAC_I5400 is not set
# CONFIG_EDAC_I7CORE is not set
# CONFIG_EDAC_I5000 is not set
# CONFIG_EDAC_I5100 is not set
# CONFIG_EDAC_I7300 is not set
CONFIG_EDAC_SBRIDGE=y
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
# 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_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_ISL12057 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
#
# SPI RTC drivers
#
#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_DS2404 is not set
#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_MOXART is not set
# CONFIG_RTC_DRV_XGENE 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_INTEL_MID_DMAC=y
CONFIG_INTEL_IOATDMA=y
# CONFIG_DW_DMAC_CORE is not set
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
CONFIG_DMA_ENGINE=y
CONFIG_DMA_ACPI=y
#
# DMA Clients
#
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
CONFIG_DMA_ENGINE_RAID=y
CONFIG_DCA=y
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO=y
#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
# CONFIG_VIRTIO_MMIO is not set
#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
# CONFIG_X86_PLATFORM_DEVICES is not set
# CONFIG_CHROME_PLATFORMS is not set
#
# SOC (System On Chip) specific Drivers
#
#
# Hardware Spinlock drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
# CONFIG_EM_TIMER_STI is not set
# CONFIG_MAILBOX is not set
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
# CONFIG_AMD_IOMMU is not set
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y
#
# Remoteproc drivers
#
# CONFIG_STE_MODEM_RPROC is not set
#
# Rpmsg drivers
#
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set
#
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_SAMSUNG_USB2 is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_UEFI_CPER=y
#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=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=y
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=y
# CONFIG_CUSE 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
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
# 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_LOGFS is not set
# CONFIG_CRAMFS is not set
CONFIG_SQUASHFS=y
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 is not set
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SQUASHFS_LZO is not set
CONFIG_SQUASHFS_XZ=y
# 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 is not set
# 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_CONSOLE is not set
# CONFIG_PSTORE_RAM is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_F2FS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
# CONFIG_NFSD_V4_SECURITY_LABEL is not set
# CONFIG_NFSD_FAULT_INJECTION is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_CODEPAGE_1250=y
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
#
# printk and dmesg options
#
# CONFIG_PRINTK_TIME is not set
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DYNAMIC_DEBUG is not set
#
# Compile-time checks and compiler options
#
# CONFIG_DEBUG_INFO is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_DEBUG_KERNEL=y
#
# Memory Debugging
#
# CONFIG_DEBUG_PAGEALLOC is not set
# 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_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
# CONFIG_DEBUG_SHIRQ is not set
#
# Debug Lockups and Hangs
#
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
#
# Lock Debugging (spinlocks, mutexes, etc...)
#
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# 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_SPARSE_RCU_POINTER is not set
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=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_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
#
# Runtime Testing
#
# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_ASYNC_RAID6_TEST is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_MODULE is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
# CONFIG_STRICT_DEVMEM is not set
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_DEBUG_SET_MODULE_RONX is not set
# CONFIG_DEBUG_NX_TEST is not set
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=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 is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
#
# Security options
#
CONFIG_KEYS=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_IMA is not set
# CONFIG_EVM is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_XOR_BLOCKS=y
CONFIG_ASYNC_CORE=y
CONFIG_ASYNC_MEMCPY=y
CONFIG_ASYNC_XOR=y
CONFIG_ASYNC_PQ=y
CONFIG_ASYNC_RAID6_RECOV=y
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_PCRYPT is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set
#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set
#
# Block modes
#
CONFIG_CRYPTO_CBC=m
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set
#
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
CONFIG_CRYPTO_HMAC=m
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
# CONFIG_CRYPTO_CRCT10DIF is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
# CONFIG_CRYPTO_SHA1_SSSE3 is not set
# CONFIG_CRYPTO_SHA256_SSSE3 is not set
# CONFIG_CRYPTO_SHA512_SSSE3 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
#
# Ciphers
#
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_X86_64 is not set
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_X86_64 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set
# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set
#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_HW is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=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_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_INTEL=y
# CONFIG_KVM_AMD is not set
# CONFIG_KVM_DEVICE_ASSIGNMENT is not set
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_RAID6_PQ=y
CONFIG_BITREVERSE=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_GENERIC_IO=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
# CONFIG_CRC_CCITT is not set
CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
CONFIG_CRC_ITU_T=y
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_CRC7 is not set
CONFIG_LIBCRC32C=y
# CONFIG_CRC8 is not set
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
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_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set
CONFIG_OID_REGISTRY=y
[-- Attachment #4: slub.s --]
[-- Type: application/octet-stream, Size: 273721 bytes --]
.file "slub.c"
# GNU C (Gentoo 4.8.3 p1.1, pie-0.5.9) version 4.8.3 (x86_64-pc-linux-gnu)
# compiled by GNU C version 4.8.3, GMP version 5.1.3, MPFR version 3.1.2, MPC version 1.0.1
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -nostdinc -I ./arch/x86/include
# -I arch/x86/include/generated -I include -I ./arch/x86/include/uapi
# -I arch/x86/include/generated/uapi -I ./include/uapi
# -I include/generated/uapi -D __KERNEL__ -D CONFIG_AS_CFI=1
# -D CONFIG_AS_CFI_SIGNAL_FRAME=1 -D CONFIG_AS_CFI_SECTIONS=1
# -D CONFIG_AS_FXSAVEQ=1 -D CONFIG_AS_CRC32=1 -D CONFIG_AS_AVX=1
# -D CONFIG_AS_AVX2=1 -D CC_HAVE_ASM_GOTO -D KBUILD_STR(s)=#s
# -D KBUILD_BASENAME=KBUILD_STR(slub) -D KBUILD_MODNAME=KBUILD_STR(slub)
# -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include
# -include ./include/linux/kconfig.h -MD mm/.slub.s.d mm/slub.c -m64
# -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -march=core2
# -mno-red-zone -mcmodel=kernel -maccumulate-outgoing-args -mno-sse
# -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -auxbase-strip mm/slub.s -O2 -Wall
# -Wundef -Wstrict-prototypes -Wno-trigraphs
# -Werror=implicit-function-declaration -Wno-format-security
# -Wno-sign-compare -Wframe-larger-than=2048 -Wno-unused-but-set-variable
# -Wdeclaration-after-statement -Wno-pointer-sign -Werror=implicit-int
# -Werror=strict-prototypes -fno-strict-aliasing -fno-common
# -funit-at-a-time -fno-asynchronous-unwind-tables
# -fno-delete-null-pointer-checks -fno-stack-protector
# -fno-omit-frame-pointer -fno-optimize-sibling-calls
# -fno-var-tracking-assignments -fno-strict-overflow -fconserve-stack
# -fverbose-asm
# options enabled: -faggressive-loop-optimizations -fauto-inc-dec
# -fbranch-count-reg -fcaller-saves -fcombine-stack-adjustments
# -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps
# -fdefer-pop -fdevirtualize -fdwarf2-cfi-asm -fearly-inlining
# -feliminate-unused-debug-types -fexpensive-optimizations
# -fforward-propagate -ffunction-cse -fgcse -fgcse-lm -fgnu-runtime
# -fguess-branch-probability -fhoist-adjacent-loads -fident -fif-conversion
# -fif-conversion2 -findirect-inlining -finline -finline-atomics
# -finline-functions-called-once -finline-small-functions -fipa-cp
# -fipa-profile -fipa-pure-const -fipa-reference -fipa-sra
# -fira-hoist-pressure -fira-share-save-slots -fira-share-spill-slots
# -fivopts -fkeep-static-consts -fleading-underscore -fmath-errno
# -fmerge-constants -fmerge-debug-strings -fmove-loop-invariants
# -foptimize-register-move -foptimize-strlen -fpartial-inlining -fpeephole
# -fpeephole2 -fprefetch-loop-arrays -free -freg-struct-return -fregmove
# -freorder-blocks -freorder-functions -frerun-cse-after-loop
# -fsched-critical-path-heuristic -fsched-dep-count-heuristic
# -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
# -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
# -fsched-stalled-insns-dep -fschedule-insns2 -fshow-column -fshrink-wrap
# -fsigned-zeros -fsplit-ivs-in-unroller -fsplit-wide-types
# -fstrict-volatile-bitfields -fsync-libcalls -fthread-jumps
# -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp -ftree-builtin-call-dce
# -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop
# -ftree-copyrename -ftree-cselim -ftree-dce -ftree-dominator-opts
# -ftree-dse -ftree-forwprop -ftree-fre -ftree-loop-if-convert
# -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
# -ftree-parallelize-loops= -ftree-phiprop -ftree-pre -ftree-pta
# -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-slp-vectorize
# -ftree-slsr -ftree-sra -ftree-switch-conversion -ftree-tail-merge
# -ftree-ter -ftree-vect-loop-version -ftree-vrp -funit-at-a-time
# -fverbose-asm -fzero-initialized-in-bss -m128bit-long-double -m64
# -maccumulate-outgoing-args -malign-stringops -mcx16 -mfxsr -mglibc
# -mieee-fp -mlong-double-80 -mno-fancy-math-387 -mno-red-zone -mno-sse4
# -mpush-args -msahf -mtls-direct-seg-refs
.text
.p2align 4,,15
.type has_cpu_slab, @function
has_cpu_slab:
movslq %edi, %rdi # cpu, cpu
movq (%rsi), %rdx # MEM[(struct kmem_cache *)info_2(D)].cpu_slab, D.44146
pushq %rbp #
addq __per_cpu_offset(,%rdi,8), %rdx # __per_cpu_offset, D.44146
movq %rsp, %rbp #,
movl $1, %eax #, D.44150
cmpq $0, 16(%rdx) #, _9->page
je .L6 #,
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L6:
cmpq $0, 24(%rdx) #, _9->partial
popq %rbp #
setne %al #, D.44150
ret
.size has_cpu_slab, .-has_cpu_slab
.p2align 4,,15
.type count_free, @function
count_free:
movzwl 26(%rdi), %eax # *page_2(D), *page_2(D)
pushq %rbp #
movzwl 24(%rdi), %edx # page_2(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44155
movq %rsp, %rbp #,
popq %rbp #
andl $32767, %eax #, D.44155
subl %edx, %eax # D.44155, D.44155
ret
.size count_free, .-count_free
.section .init.text,"ax",@progbits
.type setup_slub_nomerge, @function
setup_slub_nomerge:
pushq %rbp #
movl $1, %eax #,
movl $1, slub_nomerge(%rip) #, slub_nomerge
movq %rsp, %rbp #,
popq %rbp #
ret
.size setup_slub_nomerge, .-setup_slub_nomerge
.text
.p2align 4,,15
.type count_inuse, @function
count_inuse:
pushq %rbp #
movzwl 24(%rdi), %eax # page_2(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44162
movq %rsp, %rbp #,
popq %rbp #
ret
.size count_inuse, .-count_inuse
.p2align 4,,15
.type count_total, @function
count_total:
movzwl 26(%rdi), %eax # *page_2(D), *page_2(D)
pushq %rbp #
movq %rsp, %rbp #,
popq %rbp #
andl $32767, %eax #, D.44166
ret
.size count_total, .-count_total
.p2align 4,,15
.type reclaim_account_store, @function
reclaim_account_store:
movq 8(%rdi), %rcx # s_3(D)->flags, D.44169
pushq %rbp #
movq %rdx, %rax # length, length
movq %rsp, %rbp #,
andq $-131073, %rcx #, D.44169
movq %rcx, 8(%rdi) # D.44169, s_3(D)->flags
cmpb $49, (%rsi) #, *buf_7(D)
je .L18 #,
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L18:
orq $131072, %rcx #, tmp69
popq %rbp #
movq %rcx, 8(%rdi) # tmp69, s_3(D)->flags
ret
.size reclaim_account_store, .-reclaim_account_store
.p2align 4,,15
.type sanity_checks_store, @function
sanity_checks_store:
movq 8(%rdi), %rcx # s_3(D)->flags, D.44174
movq %rdx, %rax # length, length
pushq %rbp #
movq %rsp, %rbp #,
movq %rcx, %rdx # D.44174, tmp69
andb $254, %dh #, tmp69
movq %rdx, 8(%rdi) # tmp69, s_3(D)->flags
cmpb $49, (%rsi) #, *buf_7(D)
je .L22 #,
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L22:
andq $-1073742081, %rcx #, tmp71
popq %rbp #
orb $1, %ch #, tmp71
movq %rcx, 8(%rdi) # tmp71, s_3(D)->flags
ret
.size sanity_checks_store, .-sanity_checks_store
.p2align 4,,15
.type trace_store, @function
trace_store:
movq 8(%rdi), %rcx # s_3(D)->flags, D.44179
movq %rdx, %rax # length, length
pushq %rbp #
movq %rsp, %rbp #,
movq %rcx, %rdx # D.44179, tmp69
andq $-2097153, %rdx #, tmp69
movq %rdx, 8(%rdi) # tmp69, s_3(D)->flags
cmpb $49, (%rsi) #, *buf_7(D)
je .L26 #,
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L26:
andq $-1075838977, %rcx #, tmp71
popq %rbp #
orq $2097152, %rcx #, tmp71
movq %rcx, 8(%rdi) # tmp71, s_3(D)->flags
ret
.size trace_store, .-trace_store
.p2align 4,,15
.type validate_show, @function
validate_show:
pushq %rbp #
xorl %eax, %eax #
movq %rsp, %rbp #,
popq %rbp #
ret
.size validate_show, .-validate_show
.p2align 4,,15
.type shrink_show, @function
shrink_show:
pushq %rbp #
xorl %eax, %eax #
movq %rsp, %rbp #,
popq %rbp #
ret
.size shrink_show, .-shrink_show
.p2align 4,,15
.type slab_attr_show, @function
slab_attr_show:
movq 16(%rsi), %rax # MEM[(struct slab_attribute *)attr_3(D)].show, D.44189
subq $120, %rdi #, s
testq %rax, %rax # D.44189
je .L33 #,
pushq %rbp #
movq %rdx, %rsi # buf,
movq %rsp, %rbp #,
call *%rax # D.44189
popq %rbp #
cltq
ret
.p2align 4,,10
.p2align 3
.L33:
movq $-5, %rax #, D.44188
ret
.size slab_attr_show, .-slab_attr_show
.p2align 4,,15
.type slab_attr_store, @function
slab_attr_store:
movq 24(%rsi), %rax # MEM[(struct slab_attribute *)attr_3(D)].store, D.44194
subq $120, %rdi #, s
testq %rax, %rax # D.44194
je .L38 #,
pushq %rbp #
movq %rdx, %r8 # buf, buf
movq %rcx, %rdx # len,
movq %rsp, %rbp #,
movq %r8, %rsi # buf,
call *%rax # D.44194
popq %rbp #
cltq
ret
.p2align 4,,10
.p2align 3
.L38:
movq $-5, %rax #, D.44193
ret
.size slab_attr_store, .-slab_attr_store
.p2align 4,,15
.type uevent_filter, @function
uevent_filter:
xorl %eax, %eax # D.44199
cmpq $slab_ktype, 40(%rsi) #, MEM[(struct kobject *)kobj_3(D) + 40B]
pushq %rbp #
movq %rsp, %rbp #,
popq %rbp #
sete %al #, D.44199
ret
.size uevent_filter, .-uevent_filter
.section .rodata.str1.8,"aMS",@progbits,1
.align 8
.LC0:
.string "\0013slub_debug option '%c' unknown. skipped\n"
.section .init.text
.type setup_slub_debug, @function
setup_slub_debug:
movl $68864, slub_debug(%rip) #, slub_debug
cmpb $61, (%rdi) #, *str_9(D)
jne .L82 #,
movb 1(%rdi), %al # MEM[(char *)str_9(D) + 1B], D.44210
testb %al, %al # D.44210
je .L82 #,
pushq %rbp #
cmpb $44, %al #, D.44210
movq %rsp, %rbp #,
pushq %rbx #
leaq 1(%rdi), %rbx #, str
je .L47 #,
leal 32(%rax), %edx #, tmp106
movzbl %al, %ecx # D.44210, D.44212
testb $1, _ctype(%rcx) #, _ctype
cmove %eax, %edx # tmp106,, D.44210, c
cmpb $111, %dl #, c
jne .L49 #,
movl $1, disable_higher_order_debug(%rip) #, disable_higher_order_debug
jmp .L45 #
.L49:
movl $0, slub_debug(%rip) #, slub_debug
cmpb $45, %al #, D.44210
je .L45 #,
.L50:
movsbl (%rbx), %esi # MEM[base: str_1, offset: 0B],
cmpb $44, %sil #, D.44210
je .L47 #,
testb %sil, %sil # D.44210
je .L47 #,
leal 32(%rsi), %eax #, tmp107
movzbl %sil, %edx # D.44210, D.44212
testb $1, _ctype(%rdx) #, _ctype
cmove %esi, %eax # tmp107,, D.44210, c
cmpb $112, %al #, c
je .L53 #,
ja .L54 #,
cmpb $97, %al #, c
je .L55 #,
cmpb $102, %al #, c
jne .L52 #,
orl $256, slub_debug(%rip) #, slub_debug
jmp .L55 #
.L54:
cmpb $117, %al #, c
je .L57 #,
cmpb $122, %al #, c
je .L58 #,
cmpb $116, %al #, c
jne .L52 #,
orl $2097152, slub_debug(%rip) #, slub_debug
jmp .L55 #
.L58:
orl $1024, slub_debug(%rip) #, slub_debug
jmp .L55 #
.L53:
orl $2048, slub_debug(%rip) #, slub_debug
jmp .L55 #
.L57:
orl $65536, slub_debug(%rip) #, slub_debug
jmp .L55 #
.L52:
movq $.LC0, %rdi #,
xorl %eax, %eax #
call printk #
.L55:
incq %rbx # str
jmp .L50 #
.L47:
cmpb $44, (%rbx) #, *str_2
jne .L45 #,
incq %rbx # tmp104
movq %rbx, slub_debug_slabs(%rip) # tmp104, slub_debug_slabs
.L45:
popq %rbx #
movl $1, %eax #,
popq %rbp #
ret
.L82:
movl $1, %eax #,
ret
.size setup_slub_debug, .-setup_slub_debug
.section .rodata.str1.8
.align 8
.LC1:
.string "\0013INFO: %s in %pS age=%lu cpu=%u pid=%d\n"
.text
.p2align 4,,15
.type print_track, @function
print_track:
movq (%rsi), %rdx # t_3(D)->addr, D.44218
testq %rdx, %rdx # D.44218
jne .L91 #,
ret
.L91:
movq jiffies(%rip), %rcx # jiffies, D.44218
pushq %rbp #
xorl %eax, %eax #
movl 12(%rsi), %r9d # t_3(D)->pid,
movq %rsp, %rbp #,
movl 8(%rsi), %r8d # t_3(D)->cpu,
subq 16(%rsi), %rcx # t_3(D)->when, D.44218
movq %rdi, %rsi # s,
movq $.LC1, %rdi #,
call printk #
popq %rbp #
ret
.size print_track, .-print_track
.p2align 4,,15
.type set_track, @function
set_track:
movslq 32(%rdi), %rax # MEM[(struct kmem_cache *)s_3(D) + 32B],
pushq %rbp #
movq %rsp, %rbp #,
testl %eax, %eax # D.44224
je .L93 #,
leaq 8(%rsi,%rax), %rsi #, p
movl %edx, %edx # alloc, D.44226
testq %rcx, %rcx # addr
leaq (%rdx,%rdx,2), %rax #, D.44226
leaq (%rsi,%rax,8), %rax #, D.44227
je .L95 #,
.L98:
movq %rcx, (%rax) # addr, _25->addr
#APP
# 528 "mm/slub.c" 1
movl %gs:cpu_number,%edx # cpu_number, pscr_ret__
# 0 "" 2
#NO_APP
movl %edx, 8(%rax) # pscr_ret__, _25->cpu
#APP
# 14 "./arch/x86/include/asm/current.h" 1
movq %gs:current_task,%rdx #, pfo_ret__
# 0 "" 2
#NO_APP
movl 748(%rdx), %edx # pfo_ret___26->pid, D.44224
movl %edx, 12(%rax) # D.44224, _25->pid
movq jiffies(%rip), %rdx # jiffies, jiffies.75
movq %rdx, 16(%rax) # jiffies.75, _25->when
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L93:
movslq 80(%rdi), %rax # MEM[(int *)s_3(D) + 80B], D.44225
movl %edx, %edx # alloc, D.44226
addq %rax, %rsi # D.44225, p
testq %rcx, %rcx # addr
leaq (%rdx,%rdx,2), %rax #, D.44226
leaq (%rsi,%rax,8), %rax #, D.44227
jne .L98 #,
.L95:
movq $0, (%rax) #, MEM[(void *)_25]
movq $0, 8(%rax) #, MEM[(void *)_25]
movq $0, 16(%rax) #, MEM[(void *)_25]
popq %rbp #
ret
.size set_track, .-set_track
.p2align 4,,15
.type get_map, @function
get_map:
pushq %rbp #
movq %rdx, %r8 # map, map
movq (%rsi), %rax # MEM[(const struct page *)page_4(D)], D.44234
movq %rsp, %rbp #,
shrq $45, %rax #, D.44234
movq %rax, %rdx # D.44234, D.44234
shrq $7, %rdx #, D.44234
movq mem_section(,%rdx,8), %rdx # mem_section, D.44235
testq %rdx, %rdx # D.44235
je .L100 #,
andl $127, %eax #, D.44234
salq $5, %rax #, D.44234
addq %rax, %rdx # D.44234, D.44235
.L100:
movabsq $-131941395333120, %r9 #, tmp105
movq (%rdx), %rax # MEM[(struct mem_section *)_23], map
movq %rsi, %rdx # page, D.44236
movq 16(%rsi), %rcx # page_4(D)->D.11432.D.11414.freelist, p
andq $-4, %rax #, map
subq %rax, %rdx # map, D.44236
movq %rdx, %rax # D.44236, D.44236
sarq $6, %rax #, D.44236
salq $12, %rax #, D.44236
addq %rax, %r9 # D.44236, D.44234
testq %rcx, %rcx # p
je .L99 #,
.p2align 4,,10
.p2align 3
.L108:
movslq 24(%rdi), %rsi # MEM[(struct kmem_cache *)s_6(D) + 24B], D.44233
movq %rcx, %rax # p, D.44233
subq %r9, %rax # D.44234, D.44233
cqto
idivq %rsi # D.44233
cltq
#APP
# 80 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts %rax,(%r8) # D.44233, MEM[(volatile long int *)map_9(D)]
# 0 "" 2
#NO_APP
movslq 32(%rdi), %rax # MEM[(struct kmem_cache *)s_6(D) + 32B], D.44237
movq (%rcx,%rax), %rcx # *_47, p
testq %rcx, %rcx # p
jne .L108 #,
.L99:
popq %rbp #
ret
.size get_map, .-get_map
.section .rodata.str1.1,"aMS",@progbits,1
.LC2:
.string "mm/slub.c"
.text
.p2align 4,,15
.globl ksize
.type ksize, @function
ksize:
cmpq $16, %rdi #, object
je .L122 #,
movabsq $131939247849472, %rax #, iftmp.154
movl $2147483648, %edx #, tmp104
pushq %rbp #
addq %rdx, %rdi # tmp104, y
movq %rsp, %rbp #,
pushq %rbx #
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rax, %rdi # iftmp.154, x
movq %rdi, %rcx # x, __pfn
movq %rdi, %rdx # x, D.44243
shrq $34, %rdi #, D.44243
movq mem_section(,%rdi,8), %rax # mem_section, D.44245
shrq $12, %rcx #, __pfn
shrq $27, %rdx #, D.44243
testq %rax, %rax # D.44245
je .L115 #,
andl $127, %edx #, D.44243
salq $5, %rdx #, D.44243
addq %rdx, %rax # D.44243, D.44245
.L115:
movq (%rax), %rax # MEM[(struct mem_section *)_34], map
salq $6, %rcx #, D.44243
andq $-4, %rax #, map
addq %rcx, %rax # D.44243, page
movq (%rax), %rdx # MEM[(const long unsigned int *)page_39], D.44243
andb $128, %dh #, D.44243
jne .L133 #,
movq %rax, %rbx # page, D.44246
.L116:
movq (%rbx), %rax # MEM[(const long unsigned int *)_53], D.44243
testb $-128, %al #, D.44243
je .L134 #,
movq 48(%rbx), %rax # _53->D.11450.slab_cache, D.44244
movq 8(%rax), %rdx # MEM[(const struct kmem_cache *)_21].flags, D.44243
testb $12, %dh #, D.44243
jne .L135 #,
testl $589824, %edx #, D.44243
je .L121 #,
movslq 80(%rax), %rax # MEM[(const struct kmem_cache *)_21].inuse, D.44242
.L113:
popq %rbx #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L135:
popq %rbx #
movslq 28(%rax), %rax # MEM[(const struct kmem_cache *)_21].object_size, D.44242
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L121:
popq %rbx #
movslq 24(%rax), %rax # MEM[(const struct kmem_cache *)_21].size, D.44242
popq %rbp #
ret
.L134:
testq $49152, (%rbx) #, MEM[(struct page *)_53]
je .L136 #,
.L118:
movq (%rbx), %rax # MEM[(const long unsigned int *)_53], D.44243
xorl %ecx, %ecx # D.44247
testb $64, %ah #, D.44243
je .L119 #,
movl 104(%rbx), %ecx # MEM[(struct page *)_53 + 64B].D.11444.lru.prev, D.44247
.L119:
movl $4096, %eax #, D.44242
salq %cl, %rax # D.44247, D.44242
jmp .L113 #
.L133:
movq 48(%rax), %rbx # page_39->D.11450.first_page, D.44246
movq (%rax), %rdx # MEM[(const long unsigned int *)page_39], D.44243
andb $128, %dh #, D.44243
cmove %rax, %rbx # page,, D.44246
jmp .L116 #
.L122:
xorl %eax, %eax # D.44242
ret
.L136:
movl $3360, %esi #,
movq $.LC2, %rdi #,
call warn_slowpath_null #
jmp .L118 #
.size ksize, .-ksize
.section .rodata.str1.1
.LC3:
.string "\0013FIX %s: %pV\n"
.text
.p2align 4,,15
.type slab_fix, @function
slab_fix:
pushq %rbp #
movq %rsp, %rbp #,
subq $88, %rsp #,
movq %rdx, 56(%rsp) #,
leaq 16(%rbp), %rax #, tmp66
movq %rsp, %rdx #,
movq %rcx, 64(%rsp) #,
movq %r8, 72(%rsp) #,
movq %r9, 80(%rsp) #,
movq %rsi, (%rsp) # fmt, vaf.fmt
movq 96(%rdi), %rsi # s_6(D)->name, s_6(D)->name
movq $.LC3, %rdi #,
movq %rax, 24(%rsp) # tmp66, MEM[(struct [1] *)&args].overflow_arg_area
leaq 40(%rsp), %rax #, tmp67
movq %rax, 32(%rsp) # tmp67, MEM[(struct [1] *)&args].reg_save_area
leaq 16(%rsp), %rax #, tmp63
movq %rax, 8(%rsp) # tmp63, vaf.va
xorl %eax, %eax #
movl $16, 16(%rsp) #, MEM[(struct [1] *)&args].gp_offset
call printk #
leave
ret
.size slab_fix, .-slab_fix
.section .rodata.str1.8
.align 8
.LC4:
.string "\0013=============================================================================\n"
.section .rodata.str1.1
.LC5:
.string "\0013BUG %s (%s): %pV\n"
.section .rodata.str1.8
.align 8
.LC6:
.string "\0013-----------------------------------------------------------------------------\n\n"
.text
.p2align 4,,15
.type slab_bug, @function
slab_bug:
pushq %rbp #
movq %rsp, %rbp #,
pushq %rbx #
movq %rdi, %rbx # s, s
leaq 16(%rbp), %rax #, tmp67
subq $88, %rsp #,
movq $.LC4, %rdi #,
movq %rax, 24(%rsp) # tmp67, MEM[(struct [1] *)&args].overflow_arg_area
leaq 40(%rsp), %rax #, tmp68
movq %rax, 32(%rsp) # tmp68, MEM[(struct [1] *)&args].reg_save_area
leaq 16(%rsp), %rax #, tmp64
movq %rax, 8(%rsp) # tmp64, vaf.va
xorl %eax, %eax #
movq %r8, 72(%rsp) #,
movq %r9, 80(%rsp) #,
movq %rdx, 56(%rsp) #,
movq %rcx, 64(%rsp) #,
movq %rsi, (%rsp) # fmt, vaf.fmt
movl $16, 16(%rsp) #, MEM[(struct [1] *)&args].gp_offset
call printk #
call print_tainted #
movq 96(%rbx), %rsi # s_9(D)->name, s_9(D)->name
movq %rsp, %rcx #,
movq %rax, %rdx # D.44259,
movq $.LC5, %rdi #,
xorl %eax, %eax #
call printk #
movq $.LC6, %rdi #,
xorl %eax, %eax #
call printk #
movl $1, %esi #,
movl $5, %edi #,
call add_taint #
addq $88, %rsp #,
popq %rbx #
popq %rbp #
ret
.size slab_bug, .-slab_bug
.p2align 4,,15
.type calculate_sizes, @function
calculate_sizes:
pushq %rbp #
movl %esi, %ecx # forced_order, forced_order
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
movq %rdi, %r14 # s, s
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $48, %rsp #,
movq 8(%rdi), %rdx # s_82(D)->flags, flags
movslq 28(%rdi), %rdi # s_82(D)->object_size, size
movq %rdx, %rsi # flags, D.44294
leaq 7(%rdi), %rax #, size
andl $526336, %esi #, D.44294
andq $-8, %rax #, size
cmpq $2048, %rsi #, D.44294
je .L201 #,
.L142:
movabsq $-2147483649, %r8 #, tmp202
andq %rdx, %r8 # flags, tmp203
movq %r8, 8(%r14) # tmp203, s_82(D)->flags
.L143:
movq %rdx, %r8 # flags, D.44294
andl $1024, %r8d #, D.44294
je .L144 #,
leaq 8(%rax), %r9 #, tmp318
cmpq %rax, %rdi # size, size
cmove %r9, %rax # tmp318,, size
.L144:
testq %rsi, %rsi # D.44294
movl %eax, %edi # size, D.44293
movl %eax, 80(%r14) # size, s_82(D)->inuse
jne .L145 #,
cmpq $0, 72(%r14) #, s_82(D)->ctor
je .L146 #,
.L145:
movl %edi, 32(%r14) # D.44293, s_82(D)->offset
addq $8, %rax #, size
.L146:
leaq 48(%rax), %rsi #, tmp319
testl $65536, %edx #, flags
cmovne %rsi, %rax # tmp319,, size
testq %r8, %r8 # D.44294
leaq 8(%rax), %rdx #, tmp321
cmovne %rdx, %rax # tmp321,, size
movslq 84(%r14), %rdx # s_82(D)->align, D.44294
leaq -1(%rax,%rdx), %rax #, size
negq %rdx # D.44294
movq %rax, -64(%rbp) # size, %sfp
andq %rdx, -64(%rbp) # D.44294, %sfp
testl %ecx, %ecx # forced_order
movl -64(%rbp), %eax # %sfp, tmp375
movl %eax, 24(%r14) # tmp375, s_82(D)->size
js .L149 #,
movslq 88(%r14), %rbx # s_82(D)->reserved, D.44294
.L150:
cmpl $1, %ecx #, forced_order
sbbl %eax, %eax # tmp320
notl %eax # tmp320
andl $16384, %eax #, tmp320
movl %eax, 64(%r14) # tmp320, s_82(D)->allocflags
movq 8(%r14), %rax # s_82(D)->flags, D.44294
testb $64, %ah #, D.44294
je .L172 #,
orl $1, 64(%r14) #, s_82(D)->allocflags
.L172:
testl $131072, %eax #, D.44294
je .L199 #,
orl $524288, 64(%r14) #, s_82(D)->allocflags
.L199:
movq -64(%rbp), %r9 # %sfp, size
movl $4096, %eax #, D.44294
movl %ecx, %esi # forced_order, D.44293
salq %cl, %rax # forced_order, D.44294
sall $16, %esi #, D.44293
xorl %edx, %edx # tmp272
subq %rbx, %rax # D.44294, D.44294
divq -64(%rbp) # %sfp
addl %eax, %esi # D.44294, D.44293
leaq -1(%r9), %rdx #, size
movslq %esi, %rax # D.44293, D.44293
shrq $12, %rdx #, size
movq %rax, 40(%r14) # D.44293, MEM[(struct kmem_cache *)s_82(D) + 40B]
movl $-1, %eax #, bitpos
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %ecx #, D.44293
movl $4096, %eax #, D.44294
xorl %edx, %edx # tmp283
salq %cl, %rax # D.44293, D.44294
movl %ecx, %edi # D.44293, D.44293
sall $16, %edi #, D.44293
subq %rbx, %rax # D.44294, D.44294
divq %r9 # size
addl %edi, %eax # D.44293, D.44293
cmpw %si, 48(%r14) # D.44293, MEM[(struct kmem_cache *)s_82(D) + 48B]
cltq
movq %rax, 56(%r14) # D.44293, MEM[(struct kmem_cache *)s_82(D) + 56B]
movzwl %si, %eax # D.44293, D.44293
jb .L202 #,
.L174:
testl %eax, %eax # D.44293
setne %al #, D.44293
movzbl %al, %eax # D.44293, D.44293
.L191:
addq $48, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L202:
movq 40(%r14), %rdx # s_82(D)->oo, s_82(D)->oo
movq %rdx, 48(%r14) # s_82(D)->oo, s_82(D)->max
jmp .L174 #
.L201:
cmpq $0, 72(%r14) #, s_82(D)->ctor
jne .L142 #,
movl $2147483648, %r8d #, tmp201
orq %rdx, %r8 # flags, tmp201
movq %r8, 8(%r14) # tmp201, s_82(D)->flags
jmp .L143 #
.L149:
movl slub_min_objects(%rip), %esi # slub_min_objects, _min1
movl 88(%r14), %eax # s_82(D)->reserved, D.44293
testl %esi, %esi # _min1
movl %eax, -80(%rbp) # D.44293, %sfp
je .L203 #,
.L151:
movl slub_max_order(%rip), %edi # slub_max_order, slub_max_order.722
movl $4096, %r8d #, tmp213
xorl %edx, %edx # tmp217
movslq -80(%rbp), %rbx # %sfp, D.44294
movq %r8, %rax # tmp213, D.44294
movslq -64(%rbp), %r9 # %sfp, D.44294
movl %edi, %ecx # slub_max_order.722, tmp378
salq %cl, %rax # tmp378, D.44294
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
cmpl %eax, %esi # D.44294, _min1
cmovle %esi, %eax # _min1,, min_objects
movl %eax, -76(%rbp) # min_objects, %sfp
cmpl $1, %eax #, min_objects
movl slub_min_order(%rip), %eax # slub_min_order, D.44293
movl %eax, -48(%rbp) # D.44293, %sfp
movl %eax, %ecx # D.44293, tmp401
jle .L204 #,
salq %cl, %r8 # tmp401, D.44294
movq -64(%rbp), %rcx # %sfp, size
xorl %edx, %edx # tmp297
movq %r8, %rax # D.44294, D.44294
movl $4096, %r11d #, tmp334
movq %r14, -72(%rbp) # s, %sfp
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
movl %eax, -44(%rbp) # D.44294, %sfp
movl %ecx, %edx # size, D.44297
movl %ecx, %eax # size, D.44293
negl %edx # D.44297
sall $15, %eax #, D.44293
movl %edx, -88(%rbp) # D.44297, %sfp
movl -76(%rbp), %edx # %sfp, D.44293
subl %ecx, %eax # size, D.44293
cltq
subq $1, %rax #, size
shrq $12, %rax #, size
imull %ecx, %edx # size, D.44293
movl %edx, %ecx # D.44293, ivtmp.1573
movl -80(%rbp), %edx # %sfp, D.44293
addl %edx, %ecx # D.44293, ivtmp.1573
notl %edx # D.44297
movl %edx, -84(%rbp) # D.44297, %sfp
movl $-1, %edx #, forced_order
movl %ecx, -56(%rbp) # ivtmp.1573, %sfp
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rax,%rdx # size, forced_order
# 0 "" 2
#NO_APP
movl %edx, -52(%rbp) # forced_order, %sfp
.L160:
movl -56(%rbp), %edx # %sfp, ivtmp.1573
movl $-1, %r14d #, r
movl $3, %r12d #, D.44296
movl -84(%rbp), %eax # %sfp, D.44293
movl $16, %r13d #, fraction
movslq %edx, %r10 # ivtmp.1573, D.44294
addl %edx, %eax # ivtmp.1573, D.44293
#APP
# 451 "./arch/x86/include/asm/bitops.h" 1
bsrl %eax,%r14d # D.44293, r
# 0 "" 2
#NO_APP
subl $11, %r14d #, _max2
jmp .L175 #
.p2align 4,,10
.p2align 3
.L206:
movl -52(%rbp), %eax # %sfp, forced_order
cmpl %eax, %edi # forced_order, slub_max_order.722
movl %eax, %ecx # forced_order, forced_order
jge .L195 #,
.L156:
sarl %r13d # fraction
subl $1, %r12d #, D.44296
je .L205 #,
.L175:
cmpl $32767, -44(%rbp) #, %sfp
jg .L206 #,
movl -48(%rbp), %ecx # %sfp, D.44293
cmpl %ecx, %r14d # D.44293, _max2
cmovge %r14d, %ecx # _max2,, forced_order
cmpl %ecx, %edi # forced_order, slub_max_order.722
jl .L156 #,
movslq %r13d, %r8 # fraction, D.44294
jmp .L158 #
.p2align 4,,10
.p2align 3
.L157:
addl $1, %ecx #, forced_order
cmpl %ecx, %edi # forced_order, slub_max_order.722
jl .L156 #,
.L158:
movq %r11, %rsi # tmp334, slab_size
salq %cl, %rsi # forced_order, slab_size
cmpq %rsi, %r10 # slab_size, D.44294
ja .L157 #,
movq %rsi, %rax # slab_size, D.44294
xorl %edx, %edx # D.44294
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
movq %rsi, %rax # slab_size, D.44294
movslq %edx, %r15 # D.44294, D.44294
xorl %edx, %edx # tmp239
divq %r8 # D.44294
cmpq %rax, %r15 # D.44294, D.44294
ja .L157 #,
.L195:
movq -72(%rbp), %r14 # %sfp, s
.L155:
xorl %eax, %eax # D.44293
testl %ecx, %ecx # forced_order
jns .L150 #,
addq $48, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L205:
subl $1, -76(%rbp) #, %sfp
movl -88(%rbp), %eax # %sfp, D.44297
addl %eax, -56(%rbp) # D.44297, %sfp
cmpl $1, -76(%rbp) #, %sfp
jne .L160 #,
movq -72(%rbp), %r14 # %sfp, s
.L153:
cmpl $32767, -44(%rbp) #, %sfp
jle .L161 #,
movq -64(%rbp), %rdx # %sfp, size
movl $-1, %ecx #, forced_order
movl %edx, %eax # size, D.44293
sall $15, %eax #, D.44293
subl %edx, %eax # size, D.44293
cltq
subq $1, %rax #, size
shrq $12, %rax #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rax,%rcx # size, forced_order
# 0 "" 2
#NO_APP
cmpl %ecx, %edi # forced_order, slub_max_order.722
jge .L155 #,
.L166:
xorl %eax, %eax # D.44293
cmpl $10, %ecx #, forced_order
jg .L191 #,
jmp .L155 #
.p2align 4,,10
.p2align 3
.L203:
movl $-1, %eax #, r
#APP
# 451 "./arch/x86/include/asm/bitops.h" 1
bsrl nr_cpu_ids(%rip),%eax # nr_cpu_ids, r
# 0 "" 2
#NO_APP
leal 8(,%rax,4), %esi #, _min1
jmp .L151 #
.L204:
salq %cl, %r8 # tmp382, D.44294
xorl %edx, %edx # tmp224
movq %r8, %rax # D.44294, D.44294
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
movl %eax, -44(%rbp) # D.44294, %sfp
jmp .L153 #
.L161:
movq -64(%rbp), %r8 # %sfp, size
movl $-1, %eax #, r
movl -48(%rbp), %edx # %sfp, D.44293
leal -1(%r8), %esi #, D.44293
#APP
# 451 "./arch/x86/include/asm/bitops.h" 1
bsrl %esi,%eax # D.44293, r
# 0 "" 2
#NO_APP
subl $11, %eax #, _max2
cmpl %edx, %eax # D.44293, _max2
cmovl %edx, %eax # forced_order,, D.44293, forced_order
cmpl %eax, %edi # forced_order, slub_max_order.722
movl %eax, %ecx # forced_order, forced_order
jl .L163 #,
movl -80(%rbp), %r10d # %sfp, D.44293
addl %r8d, %r10d # size, D.44293
movl $4096, %r8d #, tmp324
movslq %r10d, %r10 # D.44293, D.44294
.L165:
movq %r8, %r11 # tmp324, slab_size
salq %cl, %r11 # forced_order, slab_size
cmpq %r11, %r10 # slab_size, D.44294
ja .L164 #,
movq %r11, %rax # slab_size, D.44294
xorl %edx, %edx # D.44294
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
movslq %edx, %rdx # D.44294, D.44294
cmpq %rdx, %r11 # D.44294, slab_size
jae .L155 #,
.L164:
addl $1, %ecx #, forced_order
cmpl %ecx, %edi # forced_order, slub_max_order.722
jge .L165 #,
.L163:
movl -48(%rbp), %ecx # %sfp, D.44293
movl $-1, %eax #, r
#APP
# 451 "./arch/x86/include/asm/bitops.h" 1
bsrl %esi,%eax # D.44293, r
# 0 "" 2
#NO_APP
subl $11, %eax #, _max2
cmpl %ecx, %eax # D.44293, _max2
cmovge %eax, %ecx # _max2,, forced_order
cmpl $11, %ecx #, forced_order
jg .L180 #,
movl -80(%rbp), %r8d # %sfp, D.44293
movl $4096, %edi #, tmp323
addl -64(%rbp), %r8d # %sfp, D.44293
movslq %r8d, %r8 # D.44293, D.44294
.L176:
movq %rdi, %rsi # tmp323, slab_size
salq %cl, %rsi # forced_order, slab_size
cmpq %rsi, %r8 # slab_size, D.44294
ja .L167 #,
movq %rsi, %rax # slab_size, D.44294
xorl %edx, %edx # D.44294
subq %rbx, %rax # D.44294, D.44294
divq %r9 # D.44294
movslq %edx, %rdx # D.44294, D.44294
cmpq %rdx, %rsi # D.44294, slab_size
jae .L166 #,
.L167:
addl $1, %ecx #, forced_order
cmpl $12, %ecx #, forced_order
jne .L176 #,
.L180:
xorl %eax, %eax # D.44293
jmp .L191 #
.size calculate_sizes, .-calculate_sizes
.p2align 4,,15
.type count_partial, @function
count_partial:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
movq %rdi, %r14 # n, n
pushq %r13 #
movq %rsi, %r13 # get_count, get_count
pushq %r12 #
leaq 16(%r14), %r12 #, D.44313
pushq %rbx #
xorl %ebx, %ebx # x
subq $8, %rsp #,
call _raw_spin_lock_irqsave #
movq %rax, -48(%rbp) #, %sfp
movq 16(%r14), %rax # n_5(D)->partial.next, __mptr
leaq -32(%rax), %r15 #, page
cmpq %rax, %r12 # __mptr, D.44313
je .L208 #,
.p2align 4,,10
.p2align 3
.L209:
movq %r15, %rdi # page,
call *%r13 # get_count
cltq
addq %rax, %rbx # D.44315, x
movq 32(%r15), %rax # page_29->D.11444.lru.next, __mptr
leaq -32(%rax), %r15 #, page
cmpq %rax, %r12 # __mptr, D.44313
jne .L209 #,
.L208:
movq -48(%rbp), %rsi # %sfp,
movq %r14, %rdi # n,
call _raw_spin_unlock_irqrestore #
addq $8, %rsp #,
movq %rbx, %rax # x,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size count_partial, .-count_partial
.p2align 4,,15
.type any_slab_objects, @function
any_slab_objects:
pushq %rbp #
movl $64, %esi #,
movq %rsp, %rbp #,
pushq %r12 #
movl $64, %r12d #, tmp78
pushq %rbx #
movq %rdi, %rbx # s, s
movq $node_states+8, %rdi #,
call find_first_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.44319
cmovle %eax, %edx # D.44319,, node
cmpl $64, %edx #, node
je .L216 #,
.p2align 4,,10
.p2align 3
.L225:
movslq %edx, %rax # node, node
movq 192(%rbx,%rax,8), %rax # s_6(D)->node, D.44320
testq %rax, %rax # D.44320
je .L215 #,
movq 40(%rax), %rax # MEM[(volatile long int *)_12 + 40B], D.44321
testq %rax, %rax # D.44321
jne .L218 #,
.L215:
addl $1, %edx #, D.44318
movl $64, %esi #,
movq $node_states+8, %rdi #,
movslq %edx, %rdx # D.44318, D.44319
call find_next_bit #
cmpl $64, %eax #, D.44319
movl %eax, %edx # D.44319, node
cmovg %r12d, %edx # node,, tmp78, node
cmpl $64, %edx #, node
jne .L225 #,
.L216:
popq %rbx #
xorl %eax, %eax # D.44318
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L218:
popq %rbx #
movl $1, %eax #, D.44318
popq %r12 #
popq %rbp #
ret
.size any_slab_objects, .-any_slab_objects
.p2align 4,,15
.type store_user_store, @function
store_user_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r13 #
movq %rsi, %r13 # buf, buf
pushq %r12 #
movq %rdx, %r12 # length, length
pushq %rbx #
movq %rdi, %rbx # s, s
call any_slab_objects #
testl %eax, %eax # D.44325
jne .L230 #,
movq 8(%rbx), %rcx # s_5(D)->flags, D.44326
movq %rcx, %rax # D.44326, tmp70
andq $-65537, %rax #, tmp70
movq %rax, 8(%rbx) # tmp70, s_5(D)->flags
cmpb $49, 0(%r13) #, *buf_11(D)
je .L232 #,
.L229:
movl $-1, %esi #,
movq %rbx, %rdi # s,
call calculate_sizes #
movq %r12, %rax # length, D.44324
.L228:
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L232:
andq $-1073807361, %rcx #, tmp72
orq $65536, %rcx #, tmp72
movq %rcx, 8(%rbx) # tmp72, s_5(D)->flags
jmp .L229 #
.p2align 4,,10
.p2align 3
.L230:
movq $-16, %rax #, D.44324
jmp .L228 #
.size store_user_store, .-store_user_store
.p2align 4,,15
.type poison_store, @function
poison_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r13 #
movq %rsi, %r13 # buf, buf
pushq %r12 #
movq %rdx, %r12 # length, length
pushq %rbx #
movq %rdi, %rbx # s, s
call any_slab_objects #
testl %eax, %eax # D.44331
jne .L236 #,
movq 8(%rbx), %rcx # s_5(D)->flags, D.44332
movq %rcx, %rax # D.44332, tmp70
andb $247, %ah #, tmp70
movq %rax, 8(%rbx) # tmp70, s_5(D)->flags
cmpb $49, 0(%r13) #, *buf_11(D)
je .L238 #,
.L235:
movl $-1, %esi #,
movq %rbx, %rdi # s,
call calculate_sizes #
movq %r12, %rax # length, D.44330
.L234:
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L238:
andq $-1073743873, %rcx #, tmp72
orb $8, %ch #, tmp72
movq %rcx, 8(%rbx) # tmp72, s_5(D)->flags
jmp .L235 #
.p2align 4,,10
.p2align 3
.L236:
movq $-16, %rax #, D.44330
jmp .L234 #
.size poison_store, .-poison_store
.p2align 4,,15
.type red_zone_store, @function
red_zone_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r13 #
movq %rsi, %r13 # buf, buf
pushq %r12 #
movq %rdx, %r12 # length, length
pushq %rbx #
movq %rdi, %rbx # s, s
call any_slab_objects #
testl %eax, %eax # D.44337
jne .L242 #,
movq 8(%rbx), %rcx # s_5(D)->flags, D.44338
movq %rcx, %rax # D.44338, tmp70
andb $251, %ah #, tmp70
movq %rax, 8(%rbx) # tmp70, s_5(D)->flags
cmpb $49, 0(%r13) #, *buf_11(D)
je .L244 #,
.L241:
movl $-1, %esi #,
movq %rbx, %rdi # s,
call calculate_sizes #
movq %r12, %rax # length, D.44336
.L240:
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L244:
andq $-1073742849, %rcx #, tmp72
orb $4, %ch #, tmp72
movq %rcx, 8(%rbx) # tmp72, s_5(D)->flags
jmp .L241 #
.p2align 4,,10
.p2align 3
.L242:
movq $-16, %rax #, D.44336
jmp .L240 #
.size red_zone_store, .-red_zone_store
.section .rodata.str1.8
.align 8
.LC7:
.string "\0014SLUB: Unable to allocate memory on node %d (gfp=0x%x)\n"
.align 8
.LC8:
.string "\0014 cache: %s, object size: %d, buffer size: %d, default order: %d, min order: %d\n"
.align 8
.LC9:
.string "\0014 %s debugging increased min order, use slub_debug=O to disable.\n"
.align 8
.LC10:
.string "\0014 node %d: slabs: %ld, objs: %ld, free: %ld\n"
.section .text.unlikely,"ax",@progbits
.type slab_out_of_memory, @function
slab_out_of_memory:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
movl %esi, %ebx # gfpflags, gfpflags
testb $2, %bh #, gfpflags
jne .L245 #,
movq %rdi, %r12 # s, s
movq $__func__.30346, %rsi #,
movl %edx, %r13d # nid, nid
movq $slub_oom_rs.30343, %rdi #,
call ___ratelimit #
testl %eax, %eax # D.44343
je .L245 #,
movl %ebx, %edx # gfpflags,
movl %r13d, %esi # nid,
movq $.LC7, %rdi #,
xorl %eax, %eax #
call printk #
movq 56(%r12), %r9 # MEM[(struct kmem_cache *)s_80(D) + 56B], tmp120
xorl %eax, %eax #
movq 40(%r12), %r8 # MEM[(struct kmem_cache *)s_80(D) + 40B], tmp121
movq $.LC8, %rdi #,
movl 28(%r12), %edx # s_80(D)->object_size, s_80(D)->object_size
movl 24(%r12), %ecx # s_80(D)->size, s_80(D)->size
movq 96(%r12), %rsi # s_80(D)->name, s_80(D)->name
shrq $16, %r9 #, tmp120
shrq $16, %r8 #, tmp121
call printk #
movslq 28(%r12), %rdx # s_80(D)->object_size, D.44345
orl $-1, %eax #, bitpos
decq %rdx # size
shrq $12, %rdx #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %edx #, D.44343
movq 56(%r12), %rax # MEM[(struct kmem_cache *)s_80(D) + 56B], D.44345
shrq $16, %rax #, D.44345
cmpl %eax, %edx # D.44345, D.44343
jge .L248 #,
movq 96(%r12), %rsi # s_80(D)->name, s_80(D)->name
movq $.LC9, %rdi #,
xorl %eax, %eax #
call printk #
.L248:
movl $64, %esi #,
movl $64, %ebx #, node
movl $64, %r14d #, tmp119
movq $node_states+8, %rdi #,
call find_first_bit #
cmpl $64, %eax #, D.44345
cmovle %eax, %ebx # D.44345,, node
.L249:
cmpl $64, %ebx #, node
je .L245 #,
movslq %ebx, %rax # node, node
movq 192(%r12,%rax,8), %r13 # s_80(D)->node, D.44346
testq %r13, %r13 # D.44346
je .L250 #,
movq $count_free, %rsi #,
movq %r13, %rdi # D.44346,
call count_partial #
movq 32(%r13), %rdx # MEM[(volatile long int *)_177 + 32B], D.44347
movl %ebx, %esi # node,
movq 40(%r13), %rcx # MEM[(volatile long int *)_177 + 40B], D.44347
movq %rax, %r8 #, nr_free
movq $.LC10, %rdi #,
xorl %eax, %eax #
call printk #
.L250:
leal 1(%rbx), %edx #, D.44343
movl $64, %esi #,
movq $node_states+8, %rdi #,
movslq %edx, %rdx # D.44343, D.44345
call find_next_bit #
cmpl $64, %eax #, D.44345
movl %eax, %ebx # D.44345, node
cmovg %r14d, %ebx # node,, tmp119, node
jmp .L249 #
.L245:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.size slab_out_of_memory, .-slab_out_of_memory
.section .init.text
.type setup_slub_min_order, @function
setup_slub_min_order:
pushq %rbp #
movq $slub_min_order, %rsi #,
movq %rsp, %rbp #,
pushq %rax #
movq %rdi, -8(%rbp) # str, str
leaq -8(%rbp), %rdi #, tmp62
call get_option #
movl $1, %eax #,
leave
ret
.size setup_slub_min_order, .-setup_slub_min_order
.type setup_slub_max_order, @function
setup_slub_max_order:
pushq %rbp #
movq $slub_max_order, %rsi #,
movq %rsp, %rbp #,
pushq %rax #
movq %rdi, -8(%rbp) # str, str
leaq -8(%rbp), %rdi #, tmp66
call get_option #
cmpl $10, slub_max_order(%rip) #, slub_max_order
movl $10, %eax #, slub_max_order.265
cmovle slub_max_order(%rip), %eax # slub_max_order,, slub_max_order.265
movl %eax, slub_max_order(%rip) # slub_max_order.265, slub_max_order
movl $1, %eax #,
leave
ret
.size setup_slub_max_order, .-setup_slub_max_order
.type setup_slub_min_objects, @function
setup_slub_min_objects:
pushq %rbp #
movq $slub_min_objects, %rsi #,
movq %rsp, %rbp #,
pushq %rax #
movq %rdi, -8(%rbp) # str, str
leaq -8(%rbp), %rdi #, tmp62
call get_option #
movl $1, %eax #,
leave
ret
.size setup_slub_min_objects, .-setup_slub_min_objects
.section .text.unlikely
.type kmalloc_large_node, @function
kmalloc_large_node:
movl %edx, %r8d # node, node
pushq %rbp #
orl $-1, %eax #, bitpos
leaq -1(%rdi), %rcx #, size
orl $2113536, %esi #, flags
movq %rsp, %rbp #,
shrq $12, %rcx #, size
movl %r8d, %edi # node,
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rcx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %edx #, D.44361
call alloc_kmem_pages_node #
testq %rax, %rax # page
je .L268 #,
movq (%rax), %rdx # MEM[(const struct page *)page_145], D.44362
shrq $45, %rdx #, D.44362
movq %rdx, %rcx # D.44362, D.44362
shrq $7, %rcx #, D.44362
movq mem_section(,%rcx,8), %rcx # mem_section, D.44363
testq %rcx, %rcx # D.44363
je .L267 #,
andl $127, %edx #, D.44362
salq $5, %rdx #, D.44362
addq %rdx, %rcx # D.44362, D.44363
.L267:
movq (%rcx), %rdx # MEM[(struct mem_section *)_162], map
andq $-4, %rdx #, map
subq %rdx, %rax # map, D.44365
movabsq $-131941395333120, %rdx #, tmp107
sarq $6, %rax #, D.44365
salq $12, %rax #, D.44365
addq %rdx, %rax # tmp107, ptr
jmp .L266 #
.L268:
xorl %eax, %eax # ptr
.L266:
popq %rbp #
ret
.size kmalloc_large_node, .-kmalloc_large_node
.text
.p2align 4,,15
.type min_partial_store, @function
min_partial_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rdi # buf, buf
movq %rdx, %rbx # length, length
leaq -24(%rbp), %rdx #, tmp70
subq $8, %rsp #,
movl $10, %esi #,
call kstrtoull #
testl %eax, %eax # D.44370
jne .L279 #,
movq -24(%rbp), %rax # min, min
movl $5, %ecx #, min
cmpq $4, %rax #, min
ja .L280 #,
.L276:
movq %rcx, 16(%r12) # min, MEM[(long unsigned int *)s_8(D) + 16B]
addq $8, %rsp #,
movq %rbx, %rax # length, D.44369
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L280:
movb $10, %cl #,
cmpq $10, %rax #, min
cmovbe %rax, %rcx # min,, min
jmp .L276 #
.p2align 4,,10
.p2align 3
.L279:
addq $8, %rsp #,
cltq
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size min_partial_store, .-min_partial_store
.p2align 4,,15
.type remote_node_defrag_ratio_store, @function
remote_node_defrag_ratio_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rdi # buf, buf
movq %rdx, %rbx # length, length
leaq -24(%rbp), %rdx #, tmp76
subq $8, %rsp #,
movl $10, %esi #,
call kstrtoull #
testl %eax, %eax # D.44376
jne .L286 #,
movq -24(%rbp), %rcx # ratio, ratio.806
cmpq $100, %rcx #, ratio.806
jbe .L287 #,
.L284:
addq $8, %rsp #,
movq %rbx, %rax # length, D.44374
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L287:
leal (%rcx,%rcx,4), %eax #, D.44375
addl %eax, %eax # tmp74
movl %eax, 184(%r12) # tmp74, s_12(D)->remote_node_defrag_ratio
jmp .L284 #
.p2align 4,,10
.p2align 3
.L286:
addq $8, %rsp #,
cltq
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size remote_node_defrag_ratio_store, .-remote_node_defrag_ratio_store
.p2align 4,,15
.type order_store, @function
order_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rdi # buf, buf
movq %rdx, %rbx # length, length
leaq -24(%rbp), %rdx #, tmp77
subq $8, %rsp #,
movl $10, %esi #,
call kstrtoull #
testl %eax, %eax # D.44381
jne .L294 #,
movq -24(%rbp), %rsi # order, order.982
movslq slub_max_order(%rip), %rax # slub_max_order, D.44380
cmpq %rsi, %rax # order.982, D.44380
jb .L291 #,
movslq slub_min_order(%rip), %rdx # slub_min_order, D.44380
movq $-22, %rax #, D.44379
cmpq %rdx, %rsi # D.44380, order.982
jb .L290 #,
movq %r12, %rdi # s,
call calculate_sizes #
movq %rbx, %rax # length, D.44379
.L290:
addq $8, %rsp #,
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L294:
addq $8, %rsp #,
cltq
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L291:
movq $-22, %rax #, D.44379
jmp .L290 #
.size order_store, .-order_store
.p2align 4,,15
.type cpu_partial_store, @function
cpu_partial_store:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdx, %r12 # length, length
pushq %rbx #
leaq -24(%rbp), %rdx #, tmp73
movq %rdi, %rbx # s, s
subq $8, %rsp #,
movq %rsi, %rdi # buf, buf
movl $10, %esi #,
call kstrtoull #
testl %eax, %eax # D.44385
jne .L304 #,
movq -24(%rbp), %rcx # objects, objects.979
testq %rcx, %rcx # objects.979
je .L298 #,
testq $2166016, 8(%rbx) #, MEM[(struct kmem_cache *)s_8(D) + 8B]
jne .L299 #,
.L298:
movl %ecx, 36(%rbx) # objects.979, s_8(D)->cpu_partial
movl $32, %r8d #,
movl $1, %ecx #,
movq %rbx, %rdx # s,
movq $flush_cpu_slab, %rsi #,
movq $has_cpu_slab, %rdi #,
call on_each_cpu_cond #
movq %r12, %rax # length, D.44384
.L297:
addq $8, %rsp #,
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L304:
addq $8, %rsp #,
cltq
popq %rbx #
popq %r12 #
popq %rbp #
ret
.L299:
movq $-22, %rax #, D.44384
jmp .L297 #
.size cpu_partial_store, .-cpu_partial_store
.section .rodata.str1.1
.LC11:
.string "%d\n"
.text
.p2align 4,,15
.type remote_node_defrag_ratio_show, @function
remote_node_defrag_ratio_show:
pushq %rbp #
movl $1717986919, %edx #, tmp69
movq %rsi, %r8 # buf, buf
movl 184(%rdi), %ecx # s_2(D)->remote_node_defrag_ratio, s_2(D)->remote_node_defrag_ratio
movq %rsp, %rbp #,
movq $.LC11, %rsi #,
movq %r8, %rdi # buf,
movl %ecx, %eax # s_2(D)->remote_node_defrag_ratio, tmp73
sarl $31, %ecx #, tmp71
imull %edx # tmp69
xorl %eax, %eax #
sarl $2, %edx #, D.44389
subl %ecx, %edx # tmp71, D.44389
call sprintf #
popq %rbp #
cltq
ret
.size remote_node_defrag_ratio_show, .-remote_node_defrag_ratio_show
.p2align 4,,15
.type cache_dma_show, @function
cache_dma_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $14, %rdx #, tmp68
andl $1, %edx #, D.44395
call sprintf #
popq %rbp #
cltq
ret
.size cache_dma_show, .-cache_dma_show
.p2align 4,,15
.type store_user_show, @function
store_user_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $16, %rdx #, tmp68
andl $1, %edx #, D.44401
call sprintf #
popq %rbp #
cltq
ret
.size store_user_show, .-store_user_show
.p2align 4,,15
.type poison_show, @function
poison_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $11, %rdx #, tmp68
andl $1, %edx #, D.44407
call sprintf #
popq %rbp #
cltq
ret
.size poison_show, .-poison_show
.p2align 4,,15
.type red_zone_show, @function
red_zone_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $10, %rdx #, tmp68
andl $1, %edx #, D.44413
call sprintf #
popq %rbp #
cltq
ret
.size red_zone_show, .-red_zone_show
.p2align 4,,15
.type trace_show, @function
trace_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $21, %rdx #, tmp68
andl $1, %edx #, D.44419
call sprintf #
popq %rbp #
cltq
ret
.size trace_show, .-trace_show
.p2align 4,,15
.type sanity_checks_show, @function
sanity_checks_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $8, %rdx #, tmp68
andl $1, %edx #, D.44425
call sprintf #
popq %rbp #
cltq
ret
.size sanity_checks_show, .-sanity_checks_show
.p2align 4,,15
.type reserved_show, @function
reserved_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movl 88(%rdi), %edx # s_2(D)->reserved, s_2(D)->reserved
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size reserved_show, .-reserved_show
.p2align 4,,15
.type destroy_by_rcu_show, @function
destroy_by_rcu_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $19, %rdx #, tmp68
andl $1, %edx #, D.44435
call sprintf #
popq %rbp #
cltq
ret
.size destroy_by_rcu_show, .-destroy_by_rcu_show
.p2align 4,,15
.type reclaim_account_show, @function
reclaim_account_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $17, %rdx #, tmp68
andl $1, %edx #, D.44441
call sprintf #
popq %rbp #
cltq
ret
.size reclaim_account_show, .-reclaim_account_show
.p2align 4,,15
.type hwcache_align_show, @function
hwcache_align_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 8(%rdi), %rdx # s_2(D)->flags, tmp68
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $13, %rdx #, tmp68
andl $1, %edx #, D.44447
call sprintf #
popq %rbp #
cltq
ret
.size hwcache_align_show, .-hwcache_align_show
.p2align 4,,15
.type align_show, @function
align_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movl 84(%rdi), %edx # s_2(D)->align, s_2(D)->align
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size align_show, .-align_show
.p2align 4,,15
.type aliases_show, @function
aliases_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movl 68(%rdi), %edx # s_2(D)->refcount, s_2(D)->refcount
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
subl $1, %edx #, D.44456
call sprintf #
popq %rbp #
cltq
ret
.size aliases_show, .-aliases_show
.section .rodata.str1.1
.LC12:
.string "%pS\n"
.text
.p2align 4,,15
.type ctor_show, @function
ctor_show:
movq 72(%rdi), %rdx # s_4(D)->ctor, D.44461
xorl %eax, %eax # D.44460
testq %rdx, %rdx # D.44461
je .L337 #,
pushq %rbp #
movq %rsi, %rcx # buf, buf
movq $.LC12, %rsi #,
movq %rsp, %rbp #,
movq %rcx, %rdi # buf,
call sprintf #
popq %rbp #
cltq
.L337:
rep ret
.size ctor_show, .-ctor_show
.section .rodata.str1.1
.LC13:
.string "%u\n"
.text
.p2align 4,,15
.type cpu_partial_show, @function
cpu_partial_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC13, %rsi #,
movl 36(%rdi), %edx # s_2(D)->cpu_partial, s_2(D)->cpu_partial
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size cpu_partial_show, .-cpu_partial_show
.section .rodata.str1.1
.LC14:
.string "%lu\n"
.text
.p2align 4,,15
.type min_partial_show, @function
min_partial_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC14, %rsi #,
movq 16(%rdi), %rdx # s_2(D)->min_partial, s_2(D)->min_partial
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size min_partial_show, .-min_partial_show
.p2align 4,,15
.type order_show, @function
order_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movq 40(%rdi), %rdx # MEM[(struct kmem_cache *)s_2(D) + 40B], D.44479
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
shrq $16, %rdx #, D.44479
call sprintf #
popq %rbp #
cltq
ret
.size order_show, .-order_show
.p2align 4,,15
.type objs_per_slab_show, @function
objs_per_slab_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movzwl 40(%rdi), %edx # MEM[(struct kmem_cache *)s_2(D) + 40B], D.44482
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size objs_per_slab_show, .-objs_per_slab_show
.p2align 4,,15
.type object_size_show, @function
object_size_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movl 28(%rdi), %edx # s_2(D)->object_size, s_2(D)->object_size
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size object_size_show, .-object_size_show
.p2align 4,,15
.type slab_size_show, @function
slab_size_show:
pushq %rbp #
movq %rsi, %rax # buf, buf
movq $.LC11, %rsi #,
movl 24(%rdi), %edx # s_2(D)->size, s_2(D)->size
movq %rsp, %rbp #,
movq %rax, %rdi # buf,
xorl %eax, %eax #
call sprintf #
popq %rbp #
cltq
ret
.size slab_size_show, .-slab_size_show
.section .rodata.str1.1
.LC15:
.string "%d(%d)"
.LC16:
.string " C%d=%d(%d)"
.text
.p2align 4,,15
.type slabs_cpu_partial_show, @function
slabs_cpu_partial_show:
pushq %rbp #
movl $-1, %edx #, cpu
movq %rsp, %rbp #,
pushq %r15 #
xorl %r15d, %r15d # pages
pushq %r14 #
movq %rsi, %r14 # buf, buf
pushq %r13 #
xorl %r13d, %r13d # objects
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq cpu_online_mask(%rip), %rbx # cpu_online_mask, D.44502
.p2align 4,,10
.p2align 3
.L351:
addl $1, %edx #, D.44496
movl $64, %esi #,
movq %rbx, %rdi # D.44502,
movslq %edx, %rdx # D.44496, D.44495
call find_next_bit #
cmpl nr_cpu_ids(%rip), %eax # nr_cpu_ids, D.44495
movl %eax, %edx # D.44495, cpu
jge .L367 #,
cltq
movq (%r12), %rcx # s_13(D)->cpu_slab, __ptr
movq __per_cpu_offset(,%rax,8), %rax # __per_cpu_offset, tmp108
movq 24(%rcx,%rax), %rax # _18->partial, page
testq %rax, %rax # page
je .L351 #,
addl 40(%rax), %r15d # page_19->D.11444.D.11439.pages, pages
addl 44(%rax), %r13d # page_19->D.11444.D.11439.pobjects, objects
jmp .L351 #
.p2align 4,,10
.p2align 3
.L367:
movl %r15d, %ecx # pages,
movl %r13d, %edx # objects,
movq $.LC15, %rsi #,
movq %r14, %rdi # buf,
xorl %eax, %eax #
movl $-1, %r15d #, cpu
call sprintf #
movl %eax, %r13d #, len
.p2align 4,,10
.p2align 3
.L354:
addl $1, %r15d #, D.44496
movl $64, %esi #,
movq %rbx, %rdi # D.44502,
movslq %r15d, %rdx # D.44496, D.44495
call find_next_bit #
cmpl nr_cpu_ids(%rip), %eax # nr_cpu_ids, D.44495
movq %rax, %rdx #, D.44495
movl %eax, %r15d # D.44495, cpu
jge .L368 #,
movslq %edx, %rcx # D.44495, cpu
movq (%r12), %rax # s_13(D)->cpu_slab, __ptr
movq __per_cpu_offset(,%rcx,8), %rcx # __per_cpu_offset, tmp121
cmpl $4075, %r13d #, len
movq 24(%rax,%rcx), %rax # _37->partial, page
ja .L354 #,
testq %rax, %rax # page
je .L354 #,
movl 44(%rax), %ecx # page_39->D.11444.D.11439.pobjects, page_39->D.11444.D.11439.pobjects
movslq %r13d, %rdi # len, D.44498
movq $.LC16, %rsi #,
movl 40(%rax), %r8d # page_39->D.11444.D.11439.pages,
addq %r14, %rdi # buf, D.44499
xorl %eax, %eax #
call sprintf #
addl %eax, %r13d # D.44496, len
jmp .L354 #
.p2align 4,,10
.p2align 3
.L368:
popq %rbx #
movslq %r13d, %rax # len, D.44498
movl $10, %edx #,
addl $1, %r13d #, D.44496
movw %dx, (%r14,%rax) #, MEM[(void *)_52]
movslq %r13d, %rax # D.44496, D.44500
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size slabs_cpu_partial_show, .-slabs_cpu_partial_show
.p2align 4,,15
.type shrink_store, @function
shrink_store:
cmpb $49, (%rsi) #, *buf_4(D)
movq $-22, %rax #, D.44509
jne .L375 #,
pushq %rbp #
movq %rsp, %rbp #,
pushq %rbx #
movq %rdx, %rbx # length, length
call kmem_cache_shrink #
movslq %eax, %rdx # rc, rc
testl %eax, %eax # rc
movq %rbx, %rax # length, D.44509
cmovne %rdx, %rax # rc,, D.44509
popq %rbx #
popq %rbp #
.L375:
rep ret
.size shrink_store, .-shrink_store
.p2align 4,,15
.type kmem_cache_release, @function
kmem_cache_release:
pushq %rbp #
subq $120, %rdi #, D.44513
movq %rsp, %rbp #,
call slab_kmem_cache_release #
popq %rbp #
ret
.size kmem_cache_release, .-kmem_cache_release
.p2align 4,,15
.type slab_unmergeable, @function
slab_unmergeable:
movl slub_nomerge(%rip), %edx # slub_nomerge,
pushq %rbp #
movl $1, %eax #, D.44520
movq %rsp, %rbp #,
testl %edx, %edx #
jne .L379 #,
testq $11078656, 8(%rdi) #, s_4(D)->flags
jne .L379 #,
cmpq $0, 72(%rdi) #, s_4(D)->ctor
je .L385 #,
.L379:
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L385:
movl 68(%rdi), %eax # s_4(D)->refcount, D.44520
popq %rbp #
shrl $31, %eax #, D.44520
ret
.size slab_unmergeable, .-slab_unmergeable
.section .rodata.str1.1
.LC17:
.string "Allocated"
.LC18:
.string "Freed"
.text
.p2align 4,,15
.type print_tracking.part.52, @function
print_tracking.part.52:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rsi, %r12 # object, object
pushq %rbx #
movq %rdi, %rbx # s, s
movslq 32(%rdi), %rax # MEM[(struct kmem_cache *)s_1(D) + 32B],
leaq 8(%rsi,%rax), %rsi #, p
testl %eax, %eax # D.44526
jne .L388 #,
movslq 80(%rdi), %rsi # MEM[(int *)s_1(D) + 80B], D.44527
addq %r12, %rsi # object, p
.L388:
movq $.LC17, %rdi #,
call print_track #
movslq 32(%rbx), %rax # MEM[(struct kmem_cache *)s_1(D) + 32B],
leaq 8(%r12,%rax), %rsi #, p
testl %eax, %eax # D.44526
jne .L390 #,
movslq 80(%rbx), %rsi # MEM[(int *)s_1(D) + 80B], D.44527
addq %r12, %rsi # object, p
.L390:
addq $24, %rsi #, D.44528
movq $.LC18, %rdi #,
call print_track #
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size print_tracking.part.52, .-print_tracking.part.52
.section .rodata.str1.8
.align 8
.LC19:
.string "\0013INFO: Slab 0x%p objects=%u used=%u fp=0x%p flags=0x%04lx\n"
.align 8
.LC20:
.string "\0013INFO: Object 0x%p @offset=%tu fp=0x%p\n\n"
.section .rodata.str1.1
.LC21:
.string "Bytes b4 "
.LC22:
.string "\0013"
.LC23:
.string "Object "
.LC24:
.string "Redzone "
.LC25:
.string "Padding "
.text
.p2align 4,,15
.type print_trailer, @function
print_trailer:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
pushq %r13 #
movq %rsi, %r13 # page, page
pushq %r12 #
movq %rdx, %r12 # p, p
pushq %rbx #
movq %rdi, %rbx # s, s
subq $16, %rsp #,
movq (%rsi), %r9 # MEM[(const struct page *)page_7(D)], D.44537
movq %r9, %rdx # D.44537, D.44537
shrq $45, %rdx #, D.44537
movq %rdx, %rax # D.44537, D.44537
shrq $7, %rax #, D.44537
movq mem_section(,%rax,8), %rax # mem_section, D.44540
testq %rax, %rax # D.44540
je .L393 #,
andl $127, %edx #, D.44537
salq $5, %rdx #, D.44537
addq %rdx, %rax # D.44537, D.44540
.L393:
movabsq $-131941395333120, %r14 #, tmp132
movq (%rax), %rax # MEM[(struct mem_section *)_59], map
movq %r13, %rsi # page, D.44541
andq $-4, %rax #, map
subq %rax, %rsi # map, D.44541
movq %rsi, %rax # D.44541, D.44541
sarq $6, %rax #, D.44541
salq $12, %rax #, D.44541
addq %rax, %r14 # D.44541, D.44537
testb $1, 10(%rbx) #, s_8(D)->flags
jne .L413 #,
.L394:
movzwl 26(%r13), %edx # *page_7(D), *page_7(D)
movq %r13, %rsi # page,
movq $.LC19, %rdi #,
movzwl 24(%r13), %ecx # page_7(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44534
xorl %eax, %eax #
movq 16(%r13), %r8 # page_7(D)->D.11432.D.11414.freelist,
andl $32767, %edx #, D.44534
call printk #
movslq 32(%rbx), %rax # MEM[(struct kmem_cache *)s_8(D) + 32B], D.44539
movq %r12, %rdx # p, D.44535
subq %r14, %rdx # D.44537, D.44535
movq %r12, %rsi # p,
movq $.LC20, %rdi #,
addq $16, %r14 #, D.44536
movq (%r12,%rax), %rcx # *_72, *_72
xorl %eax, %eax #
call printk #
cmpq %r14, %r12 # D.44536, p
ja .L414 #,
.L395:
movslq 28(%rbx), %rax # s_8(D)->object_size, __min1
movl $4096, %edx #, tmp152
movq %r12, %r9 # p,
movl $1, 8(%rsp) #,
movl $1, %r8d #,
movl $16, %ecx #,
movq $.LC23, %rsi #,
movq $.LC22, %rdi #,
cmpq $4096, %rax #, __min1
cmova %rdx, %rax # __min1,, tmp152, __min1
movw $1, %dx #,
movq %rax, (%rsp) # __min1,
call print_hex_dump #
movq 8(%rbx), %rdx # s_8(D)->flags, D.44537
testb $4, %dh #, D.44537
jne .L415 #,
.L396:
movl 32(%rbx), %eax # s_8(D)->offset, D.44534
testl %eax, %eax # D.44534
je .L397 #,
addl $8, %eax #, off
.L398:
leal 48(%rax), %ecx #, tmp162
testl $65536, %edx #, D.44537
movl 24(%rbx), %edx # s_8(D)->size, D.44538
cmovne %ecx, %eax # tmp162,, off
cmpl %eax, %edx # off, D.44538
je .L400 #,
subl %eax, %edx # off, D.44538
movl %eax, %ecx # off, D.44539
movl $1, 8(%rsp) #,
movl %edx, %eax # D.44538, tmp168
movl $1, %r8d #,
movl $1, %edx #,
leaq (%r12,%rcx), %r9 #,
movq %rax, (%rsp) # tmp168,
movl $16, %ecx #,
movq $.LC25, %rsi #,
movq $.LC22, %rdi #,
call print_hex_dump #
.L400:
call dump_stack #
addq $16, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L397:
movl 80(%rbx), %eax # s_8(D)->inuse, off
jmp .L398 #
.p2align 4,,10
.p2align 3
.L413:
movq %r12, %rsi # p,
movq %rbx, %rdi # s,
call print_tracking.part.52 #
movq 0(%r13), %r9 # page_7(D)->flags, D.44537
jmp .L394 #
.p2align 4,,10
.p2align 3
.L415:
movl 28(%rbx), %edx # s_8(D)->object_size, D.44534
movl $1, %r8d #,
movq $.LC24, %rsi #,
movl 80(%rbx), %eax # s_8(D)->inuse, D.44534
movl $1, 8(%rsp) #,
movq $.LC22, %rdi #,
movslq %edx, %rcx # D.44534, D.44539
leaq (%r12,%rcx), %r9 #,
subl %edx, %eax # D.44534,
movl $16, %ecx #,
movl $1, %edx #,
movq %rax, (%rsp) # tmp167,
call print_hex_dump #
movq 8(%rbx), %rdx # s_8(D)->flags, D.44537
jmp .L396 #
.p2align 4,,10
.p2align 3
.L414:
leaq -16(%r12), %r9 #,
movl $1, %r8d #,
movl $16, %ecx #,
movl $1, 8(%rsp) #,
movl $1, %edx #,
movq $.LC21, %rsi #,
movq $16, (%rsp) #,
movq $.LC22, %rdi #,
call print_hex_dump #
jmp .L395 #
.size print_trailer, .-print_trailer
.p2align 4,,15
.type init_object, @function
init_object:
pushq %rbp #
movq %rsi, %rcx # object, object
movq %rsp, %rbp #,
pushq %r12 #
movl %edx, %r12d # val, val
pushq %rbx #
movq %rdi, %rbx # s, s
movq 8(%rdi), %rax # s_5(D)->flags, D.44559
testl $2147483648, %eax #, D.44559
jne .L426 #,
.L417:
testb $4, %ah #, D.44559
je .L416 #,
movslq 28(%rbx), %rdi # s_5(D)->object_size, D.44560
movzbl %r12b, %esi # val, D.44560
movl 80(%rbx), %eax # s_5(D)->inuse, D.44560
subl %edi, %eax # D.44560, D.44560
addq %rcx, %rdi # object, D.44563
movslq %eax, %rdx # D.44560, D.44559
call memset #
.L416:
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L426:
movl 28(%rdi), %eax # s_5(D)->object_size, tmp102
movl $107, %esi #,
movq %rcx, %rdi # object,
leal -1(%rax), %edx #, D.44560
movslq %edx, %rdx # D.44560, D.44559
call memset #
movq %rax, %rcx #, object
movslq 28(%rbx), %rax # s_5(D)->object_size, D.44561
movb $-91, -1(%rcx,%rax) #, *_15
movq 8(%rbx), %rax # s_5(D)->flags, D.44559
jmp .L417 #
.size init_object, .-init_object
.p2align 4,,15
.type init_tracking.part.54, @function
init_tracking.part.54:
pushq %rbp #
xorl %ecx, %ecx #
movl $1, %edx #,
movq %rsp, %rbp #,
pushq %r12 #
movq %rsi, %r12 # object, object
pushq %rbx #
movq %rdi, %rbx # s, s
call set_track #
movq %r12, %rsi # object,
movq %rbx, %rdi # s,
xorl %ecx, %ecx #
xorl %edx, %edx #
call set_track #
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size init_tracking.part.54, .-init_tracking.part.54
.p2align 4,,15
.type setup_object.isra.56, @function
setup_object.isra.56:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rsi, %r12 # object, object
pushq %rbx #
movq %rdi, %rbx # s, s
movq 8(%rdi), %rax # s_1(D)->flags, tmp70
testl $2147550208, %eax #, tmp70
jne .L441 #,
.L431:
movq 72(%rbx), %rax # s_1(D)->ctor, D.44571
testq %rax, %rax # D.44571
jne .L442 #,
.L429:
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L441:
movl $187, %edx #,
call init_object #
testb $1, 10(%rbx) #, s_1(D)->flags
je .L431 #,
movq %r12, %rsi # object,
movq %rbx, %rdi # s,
call init_tracking.part.54 #
jmp .L431 #
.L442:
movq %r12, %rdi # object,
call *%rax # D.44571
.p2align 4,,8
jmp .L429 #
.size setup_object.isra.56, .-setup_object.isra.56
.p2align 4,,15
.type new_slab, @function
new_slab:
pushq %rbp #
testl $-33554426, %esi #, flags
movq %rsp, %rbp #,
pushq %r15 #
movslq %edx, %r15 # node,
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
jne .L481 #,
andl gfp_allowed_mask(%rip), %esi # gfp_allowed_mask, flags
movq %rdi, %r12 # s, s
movq 40(%rdi), %rbx # MEM[(struct kmem_cache *)s_14(D) + 40B], oo$x
andl $474864, %esi #, flags
testb $16, %sil #, flags
je .L445 #,
#APP
# 44 "./arch/x86/include/asm/irqflags.h" 1
sti
# 0 "" 2
#NO_APP
.L445:
orl 64(%r12), %esi # s_14(D)->allocflags, flags
movl %esi, %r14d # flags, flags
movq %rbx, %rsi # oo$x, D.44591
movl %r14d, %edi # flags, flags
shrq $16, %rsi #, D.44591
andl $-6657, %edi #, flags
orl $2101760, %edi #, flags
cmpl $-1, %r15d #, node
je .L482 #,
movl %r14d, %eax # flags, tmp181
movslq %r15d, %rdx # node, node
shrl $18, %eax #, tmp181
movq node_data(,%rdx,8), %rdx # node_data, tmp192
andl $1, %eax #, D.44592
leaq 0(,%rax,8), %rcx #, tmp185
addq %rax, %rcx # D.44592, tmp186
leaq (%rax,%rcx,8), %rax #, tmp189
xorl %ecx, %ecx #
salq $6, %rax #, tmp189
leaq 7168(%rdx,%rax), %rdx #, D.44605
call __alloc_pages_nodemask #
movq %rax, %r13 #, page
.L447:
testq %r13, %r13 # page
je .L483 #,
.L448:
andl $16, %r14d #, flags
je .L450 #,
#APP
# 39 "./arch/x86/include/asm/irqflags.h" 1
cli
# 0 "" 2
#NO_APP
.L450:
testq %r13, %r13 # page
je .L460 #,
movzwl 26(%r13), %eax #, tmp208
movl %ebx, %edx # oo$x, tmp205
shrq $16, %rbx #, D.44591
andw $32767, %dx #, tmp205
movq 0(%r13), %rdi # MEM[(const struct page *)page_144], D.44591
movq %rbx, %rcx # D.44591, D.44591
andw $-32768, %ax #, tmp208
orl %edx, %eax # tmp205, tmp208
movl $1, %edx #, D.44589
movw %ax, 26(%r13) # tmp208,
sall %cl, %edx # D.44591, D.44589
movq 8(%r12), %rax # s_14(D)->flags, D.44591
andl $131072, %eax #, D.44591
cmpq $1, %rax #, D.44591
movq %rdi, %rax # D.44591, D.44589
sbbl %esi, %esi # iftmp.69
shrq $37, %rdi #, D.44606
andl $3, %edi #, D.44606
shrq $39, %rax #, D.44589
notl %esi # iftmp.69
movq %rdi, %rcx # D.44606, tmp222
salq $11, %rdi #, D.44607
andl $63, %eax #, D.44589
salq $8, %rcx #, tmp222
addl $14, %esi #, iftmp.69
subq %rcx, %rdi # tmp222, D.44607
addq node_data(,%rax,8), %rdi # node_data, D.44607
call mod_zone_page_state #
movq 0(%r13), %rax # MEM[(const long unsigned int *)page_144], D.44591
xorl %ecx, %ecx # D.44589
testb $64, %ah #, D.44591
jne .L484 #,
.L453:
movq 0(%r13), %rax # MEM[(const struct page *)page_144], D.44589
movzwl 26(%r13), %edx # *page_144, D.44590
shrq $39, %rax #, D.44589
andl $63, %eax #, D.44589
andw $32767, %dx #, D.44590
movq 192(%r12,%rax,8), %rax # s_14(D)->node, D.44598
testq %rax, %rax # D.44598
je .L454 #,
#APP
# 86 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; incq 32(%rax) # MEM[(struct atomic64_t *)_67].counter
# 0 "" 2
#NO_APP
movzwl %dx, %edx # D.44590, D.44597
#APP
# 45 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; addq %rdx,40(%rax) # D.44597, MEM[(struct atomic64_t *)_68].counter
# 0 "" 2
#NO_APP
.L454:
movq %r12, 48(%r13) # s, page_144->D.11450.slab_cache
#APP
# 96 "./arch/x86/include/asm/bitops.h" 1
bts $7,0(%r13) #, MEM[(volatile long int *)_70]
# 0 "" 2
#NO_APP
cmpb $0, 16(%r13) #, page_144->D.11432.D.11414.pfmemalloc
jne .L485 #,
.L455:
movq 0(%r13), %rax # MEM[(const struct page *)page_144], D.44591
shrq $45, %rax #, D.44591
movq %rax, %rdx # D.44591, D.44591
shrq $7, %rdx #, D.44591
movq mem_section(,%rdx,8), %rdx # mem_section, D.44601
testq %rdx, %rdx # D.44601
je .L456 #,
andl $127, %eax #, D.44591
salq $5, %rax #, D.44591
addq %rax, %rdx # D.44591, D.44601
.L456:
movabsq $-131941395333120, %r14 #, tmp252
movq (%rdx), %rax # MEM[(struct mem_section *)_82], map
movq %r13, %rdi # page, D.44602
andq $-4, %rax #, map
subq %rax, %rdi # map, D.44602
movq %rdi, %rax # D.44602, D.44602
sarq $6, %rax #, D.44602
salq $12, %rax #, D.44602
addq %rax, %r14 # D.44602, last
testb $8, 9(%r12) #, s_14(D)->flags
jne .L486 #,
.L457:
movzwl 26(%r13), %eax # *page_144, *page_144
movq %r14, %rbx # last, last
andl $32767, %eax #, D.44589
imull 24(%r12), %eax # s_14(D)->size, D.44589
cltq
addq %r14, %rax # last, D.44594
cmpq %rax, %r14 # D.44594, last
jae .L458 #,
movq %r14, %r15 # last, last
jmp .L459 #
.p2align 4,,10
.p2align 3
.L487:
movq %rbx, %r15 # last, last
movq %rcx, %rbx # last, last
.L459:
movq %r15, %rsi # last,
movq %r12, %rdi # s,
call setup_object.isra.56 #
movslq 32(%r12), %rax # MEM[(struct kmem_cache *)s_14(D) + 32B], D.44593
movq %rbx, (%r15,%rax) # last, *_93
movzwl 26(%r13), %edx # *page_144, *page_144
movl 24(%r12), %eax # s_14(D)->size, D.44589
andl $32767, %edx #, D.44589
imull %eax, %edx # D.44589, D.44589
movslq %eax, %rcx # D.44589, D.44593
addq %rbx, %rcx # last, last
movslq %edx, %rdx # D.44589, D.44593
addq %r14, %rdx # last, D.44594
cmpq %rdx, %rcx # D.44594, last
jb .L487 #,
.L458:
movq %rbx, %rsi # last,
movq %r12, %rdi # s,
call setup_object.isra.56 #
movslq 32(%r12), %rax # MEM[(struct kmem_cache *)s_14(D) + 32B], D.44593
movq $0, (%rbx,%rax) #, *_95
movzwl 26(%r13), %eax # *page_144, D.44590
movq %r14, 16(%r13) # last, page_144->D.11432.D.11414.freelist
orb $-128, 27(%r13) #,
andw $32767, %ax #, D.44590
movw %ax, 24(%r13) # D.44590, page_144->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movq %r13, %rax # page, D.44608
.L451:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L484:
movl 104(%r13), %ecx # MEM[(struct page *)page_144 + 64B].D.11444.lru.prev, D.44589
jmp .L453 #
.p2align 4,,10
.p2align 3
.L485:
#APP
# 75 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; orb $64,0(%r13) #, MEM[(volatile long int *)_70]
# 0 "" 2
#NO_APP
jmp .L455 #
.p2align 4,,10
.p2align 3
.L482:
call alloc_pages_current #
movq %rax, %r13 #, page
.p2align 4,,5
jmp .L447 #
.L460:
xorl %eax, %eax # D.44608
.p2align 4,,3
jmp .L451 #
.L486:
movl $4096, %edx #, D.44591
movl $90, %esi #,
movq %r14, %rdi # last,
salq %cl, %rdx # D.44589, D.44591
call memset #
jmp .L457 #
.L481:
#APP
# 1416 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 1416, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.L483:
movq 56(%r12), %rbx # MEM[(struct kmem_cache *)s_14(D) + 56B], oo$x
movl %r14d, %edi # flags, flags
orl $2097152, %edi #, flags
movq %rbx, %rsi # oo$x, D.44591
shrq $16, %rsi #, D.44591
cmpl $-1, %r15d #, node
je .L488 #,
movl %r14d, %eax # flags, tmp195
movq node_data(,%r15,8), %rdx # node_data, tmp201
xorl %ecx, %ecx #
shrl $18, %eax #, tmp195
andl $1, %eax #, D.44592
imulq $4672, %rax, %rax #, D.44592, tmp198
leaq 7168(%rdx,%rax), %rdx #, D.44605
call __alloc_pages_nodemask #
movq %rax, %r13 #, page
jmp .L448 #
.L488:
call alloc_pages_current #
movq %rax, %r13 #, page
.p2align 4,,2
jmp .L448 #
.size new_slab, .-new_slab
.section .rodata.str1.1
.LC26:
.string "%s overwritten"
.section .rodata.str1.8
.align 8
.LC27:
.string "\0013INFO: 0x%p-0x%p. First byte 0x%x instead of 0x%x\n"
.section .rodata.str1.1
.LC28:
.string "Restoring 0x%p-0x%p=0x%x\n"
.text
.p2align 4,,15
.type check_bytes_and_report, @function
check_bytes_and_report:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rcx, %r15 # what, what
pushq %r14 #
movq %rdx, %r14 # object, object
pushq %r13 #
movl %r9d, %r13d # value, value
pushq %r12 #
movq %rdi, %r12 # s, s
movq %r8, %rdi # start,
pushq %rbx #
subq $16, %rsp #,
movq %rsi, -56(%rbp) # page, %sfp
movl %r9d, %esi # value,
movl 16(%rbp), %ebx # bytes, D.44625
movq %r8, -48(%rbp) # start, %sfp
movq %rbx, %rdx # D.44625,
call memchr_inv #
movq -48(%rbp), %r8 # %sfp, start
testq %rax, %rax # fault
movq %rax, %r10 #, fault
jne .L495 #,
movl $1, %eax #, D.44624
.L490:
addq $16, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L495:
addq %r8, %rbx # start, end
cmpq %rbx, %rax # end, fault
jae .L491 #,
movzbl -1(%rbx), %edx # MEM[(u8 *)end_12 + -1B], D.44626
cmpl %r13d, %edx # value, D.44626
je .L492 #,
jmp .L491 #
.p2align 4,,10
.p2align 3
.L496:
movzbl -1(%rbx), %eax # MEM[base: end_16, offset: -1B], D.44626
cmpl %edx, %eax # D.44626, D.44626
jne .L491 #,
.L492:
subq $1, %rbx #, end
cmpq %r10, %rbx # fault, end
jne .L496 #,
.L491:
movq %r15, %rdx # what,
movq $.LC26, %rsi #,
movq %r12, %rdi # s,
movq %r10, -48(%rbp) # fault, %sfp
leaq -1(%rbx), %r15 #, D.44628
xorl %eax, %eax #
call slab_bug #
movq -48(%rbp), %r10 # %sfp, fault
movl %r13d, %r8d # value,
movq %r15, %rdx # D.44628,
movq $.LC27, %rdi #,
xorl %eax, %eax #
movzbl %r13b, %r13d # value, D.44624
movzbl (%r10), %ecx # *fault_11, D.44624
movq %r10, %rsi # fault,
call printk #
movq -56(%rbp), %rsi # %sfp,
movq %r14, %rdx # object,
movq %r12, %rdi # s,
call print_trailer #
movq -48(%rbp), %r10 # %sfp, fault
movl %r13d, %r8d # D.44624,
movq %r15, %rcx # D.44628,
movq $.LC28, %rsi #,
movq %r12, %rdi # s,
xorl %eax, %eax #
movq %r10, %rdx # fault,
call slab_fix #
movq -48(%rbp), %r10 # %sfp, fault
movq %rbx, %rdx # end, D.44629
movl %r13d, %esi # D.44624,
subq %r10, %rdx # fault, D.44629
movq %r10, %rdi # fault,
call memset #
xorl %eax, %eax # D.44624
jmp .L490 #
.size check_bytes_and_report, .-check_bytes_and_report
.section .rodata.str1.1
.LC29:
.string "Redzone"
.LC30:
.string "Alignment padding"
.LC31:
.string "Poison"
.LC32:
.string "Object padding"
.LC33:
.string "Freepointer corrupt"
.LC34:
.string "%s"
.text
.p2align 4,,15
.type check_object, @function
check_object:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
movl %ecx, %r14d # val, val
pushq %r13 #
movq %rsi, %r13 # page, page
pushq %r12 #
movq %rdx, %r12 # object, object
pushq %rbx #
movq %rdi, %rbx # s, s
subq $8, %rsp #,
movl 28(%rdi), %edx # s_8(D)->object_size, D.44640
movq 8(%rdi), %rax # s_8(D)->flags, s_8(D)->flags
movslq %edx, %r8 # D.44640, D.44641
addq %r12, %r8 # object, endobject
testb $4, %ah #, s_8(D)->flags
jne .L534 #,
testb $8, %ah #, s_8(D)->flags
je .L532 #,
movl 80(%rdi), %ecx # s_8(D)->inuse, D.44640
cmpl %ecx, %edx # D.44640, D.44640
jl .L535 #,
.L503:
cmpb $-52, %r14b #, val
je .L507 #,
testl $2147483648, %eax #, s_8(D)->flags
jne .L536 #,
.L507:
movslq 80(%rbx), %rdx # s_8(D)->inuse, off
movslq 32(%rbx), %rsi # s_8(D)->offset,
leaq 8(%rdx), %rcx #, tmp193
testl %esi, %esi # D.44640
cmovne %rcx, %rdx # tmp193,, off
testl $65536, %eax #, s_8(D)->flags
movl 24(%rbx), %eax # s_8(D)->size, D.44640
leaq 48(%rdx), %rcx #, tmp194
cmovne %rcx, %rdx # tmp194,, off
movslq %eax, %rcx # D.44640, D.44642
cmpq %rdx, %rcx # off, D.44642
je .L502 #,
subl %edx, %eax # off, D.44643
movl $90, %r9d #,
movq $.LC32, %rcx #,
leaq (%r12,%rdx), %r8 #,
movl %eax, (%rsp) # D.44643,
movq %r12, %rdx # object,
movq %r13, %rsi # page,
movq %rbx, %rdi # s,
call check_bytes_and_report #
.L532:
movslq 32(%rbx), %rsi # s_8(D)->offset,
.L502:
testl %esi, %esi # D.44640
je .L537 #,
.L510:
movq (%r12,%rsi), %rax # *_47, D.44646
testq %rax, %rax # D.44646
je .L514 #,
movq 0(%r13), %rcx # MEM[(const struct page *)page_19(D)], D.44642
shrq $45, %rcx #, D.44642
movq %rcx, %rdx # D.44642, D.44642
shrq $7, %rdx #, D.44642
movq mem_section(,%rdx,8), %rsi # mem_section, D.44647
testq %rsi, %rsi # D.44647
je .L511 #,
andl $127, %ecx #, D.44642
salq $5, %rcx #, D.44642
addq %rcx, %rsi # D.44642, D.44647
.L511:
movq (%rsi), %rdx # MEM[(struct mem_section *)_60], map
movq %r13, %rcx # page, D.44649
andq $-4, %rdx #, map
subq %rdx, %rcx # map, D.44649
movabsq $-131941395333120, %rdx #, tmp173
sarq $6, %rcx #, D.44649
salq $12, %rcx #, D.44649
addq %rdx, %rcx # tmp173, D.44642
cmpq %rcx, %rax # D.44642, D.44646
jae .L538 #,
.L512:
xorl %eax, %eax #
movq $.LC33, %rdx #,
movq $.LC34, %rsi #,
movq %rbx, %rdi # s,
call slab_bug #
movq %r12, %rdx # object,
movq %r13, %rsi # page,
movq %rbx, %rdi # s,
call print_trailer #
movslq 32(%rbx), %rax # MEM[(struct kmem_cache *)s_8(D) + 32B], D.44641
movq $0, (%r12,%rax) #, *_83
.L533:
addq $8, %rsp #,
xorl %eax, %eax # D.44640
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L537:
cmpb $-52, %r14b #, val
jne .L510 #,
.L514:
addq $8, %rsp #,
movl $1, %eax #, D.44640
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L538:
movzwl 26(%r13), %edx # *page_19(D), *page_19(D)
movslq 24(%rbx), %rsi # MEM[(int *)s_8(D) + 24B],
andl $32767, %edx #, D.44640
imull %esi, %edx # D.44640, D.44640
movslq %edx, %rdx # D.44640, D.44641
addq %rcx, %rdx # D.44642, D.44651
cmpq %rdx, %rax # D.44651, D.44646
jae .L512 #,
subq %rcx, %rax # D.44642, D.44648
cqto
idivq %rsi # D.44648
testq %rdx, %rdx # D.44648
jne .L512 #,
jmp .L514 #
.p2align 4,,10
.p2align 3
.L534:
movl 80(%rdi), %eax # s_8(D)->inuse, D.44640
movl %ecx, %r9d # val,
movq $.LC29, %rcx #,
subl %edx, %eax # D.44640, D.44640
movq %r12, %rdx # object,
movl %eax, (%rsp) # D.44640,
call check_bytes_and_report #
testl %eax, %eax # D.44640
je .L533 #,
movq 8(%rbx), %rax # s_8(D)->flags, s_8(D)->flags
testb $8, %ah #, s_8(D)->flags
jne .L503 #,
.p2align 4,,2
jmp .L532 #
.p2align 4,,10
.p2align 3
.L536:
movl 28(%rbx), %eax # s_8(D)->object_size, tmp195
movl $107, %r9d #,
movq %r12, %r8 # object,
movq $.LC31, %rcx #,
movq %r12, %rdx # object,
movq %r13, %rsi # page,
movq %rbx, %rdi # s,
subl $1, %eax #, D.44640
movl %eax, (%rsp) # D.44640,
call check_bytes_and_report #
testl %eax, %eax # D.44640
je .L533 #,
movslq 28(%rbx), %rax # s_8(D)->object_size, D.44641
movl $1, (%rsp) #,
movq %r12, %rdx # object,
movl $165, %r9d #,
movq $.LC31, %rcx #,
movq %r13, %rsi # page,
movq %rbx, %rdi # s,
leaq -1(%r12,%rax), %r8 #,
call check_bytes_and_report #
testl %eax, %eax # D.44640
je .L533 #,
movq 8(%rbx), %rax # s_8(D)->flags, s_8(D)->flags
jmp .L507 #
.p2align 4,,10
.p2align 3
.L535:
subl %edx, %ecx # D.44640, D.44640
movl $90, %r9d #,
movq %r12, %rdx # object,
movl %ecx, (%rsp) # D.44640,
movq $.LC30, %rcx #,
call check_bytes_and_report #
movq 8(%rbx), %rax # s_8(D)->flags, s_8(D)->flags
testb $8, %ah #, s_8(D)->flags
jne .L503 #,
jmp .L532 #
.size check_object, .-check_object
.p2align 4,,15
.type kmem_cache_flags.isra.63, @function
kmem_cache_flags.isra.63:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r13 #
pushq %r12 #
pushq %rbx #
movq %rdi, %rbx # flags, flags
subq $8, %rsp #,
movslq slub_debug(%rip), %r12 # slub_debug,
testl %r12d, %r12d # slub_debug.440
je .L540 #,
movq slub_debug_slabs(%rip), %r13 # slub_debug_slabs, slub_debug_slabs.441
testq %r13, %r13 # slub_debug_slabs.441
je .L541 #,
testq %rsi, %rsi # name
movq %rsi, -32(%rbp) # name, %sfp
je .L540 #,
movq %r13, %rdi # slub_debug_slabs.441,
call strlen #
movq -32(%rbp), %rsi # %sfp, name
movq %r13, %rdi # slub_debug_slabs.441,
movq %rax, %rdx # tmp68,
call strncmp #
testl %eax, %eax # tmp70
jne .L540 #,
.L541:
orq %r12, %rbx # D.44662, flags
.L540:
addq $8, %rsp #,
movq %rbx, %rax # flags,
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
ret
.size kmem_cache_flags.isra.63, .-kmem_cache_flags.isra.63
.p2align 4,,15
.type free_loc_track.isra.66, @function
free_loc_track.isra.66:
testq %rdi, %rdi # ISRA.1476
je .L559 #,
pushq %rbp #
leaq (%rdi,%rdi,8), %rax #, D.44666
movq %rsi, %rcx # ISRA.1477, ISRA.1477
movq (%rcx), %rdi # *ISRA.1477_147(D),
leaq -1(,%rax,8), %rdx #, size
movq %rsp, %rbp #,
shrq $12, %rdx #, size
movl $-1, %eax #, bitpos
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %esi #, D.44667
call free_pages #
popq %rbp #
.L559:
rep ret
.size free_loc_track.isra.66, .-free_loc_track.isra.66
.p2align 4,,15
.type alloc_loc_track, @function
alloc_loc_track:
pushq %rbp #
leaq (%rsi,%rsi,8), %rax #, D.44673
leaq -1(,%rax,8), %rcx #, size
movq %rsp, %rbp #,
pushq %r13 #
pushq %r12 #
shrq $12, %rcx #, size
movq %rsi, %r12 # max, max
pushq %rbx #
movl $-1, %eax #, bitpos
movq %rdi, %rbx # t, t
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rcx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %esi #, order
movl %edx, %edi # flags,
call __get_free_pages #
testq %rax, %rax # l
movq %rax, %r13 #, l
je .L563 #,
movq 8(%rbx), %rax # t_142(D)->count, D.44673
testq %rax, %rax # D.44673
jne .L568 #,
.L562:
movq %r12, (%rbx) # max, t_142(D)->max
movl $1, %eax #, D.44672
movq %r13, 16(%rbx) # l, t_142(D)->loc
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L568:
movq 16(%rbx), %rsi # t_142(D)->loc, t_142(D)->loc
leaq (%rax,%rax,8), %rdx #, D.44673
movq %r13, %rdi # l,
salq $3, %rdx #, tmp88
call memcpy #
movq (%rbx), %rdi # MEM[(struct loc_track *)t_142(D)],
leaq 16(%rbx), %rsi #, D.44675
call free_loc_track.isra.66 #
jmp .L562 #
.p2align 4,,10
.p2align 3
.L563:
popq %rbx #
xorl %eax, %eax # D.44672
popq %r12 #
popq %r13 #
popq %rbp #
ret
.size alloc_loc_track, .-alloc_loc_track
.p2align 4,,15
.type process_slab, @function
process_slab:
pushq %rbp #
movq %rsi, %r9 # s, s
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
movq %rdi, %r13 # t, t
pushq %r12 #
pushq %rbx #
movl %ecx, %ebx # alloc,
movq %rdx, %rcx # page, page
subq $56, %rsp #,
movq %rdx, -56(%rbp) # page, %sfp
movq (%rdx), %rax # MEM[(const struct page *)page_5(D)], D.44710
shrq $45, %rax #, D.44710
movq %rax, %rdx # D.44710, D.44710
shrq $7, %rdx #, D.44710
movq mem_section(,%rdx,8), %rdx # mem_section, D.44711
testq %rdx, %rdx # D.44711
je .L570 #,
andl $127, %eax #, tmp258
salq $5, %rax #, tmp258
movq (%rdx,%rax), %rax # MEM[(struct mem_section *)_37], map
andq $-4, %rax #, map
.L605:
movq %rcx, %rsi # page, D.44712
movq %r8, %rdi # map,
movq %r9, -72(%rbp) # s, %sfp
subq %rax, %rsi # map, D.44712
movq %r8, -48(%rbp) # map, %sfp
movabsq $-131941395333120, %r11 #, tmp265
movq %rsi, %rax # D.44712, D.44712
xorl %esi, %esi #
sarq $6, %rax #, D.44712
salq $12, %rax #, D.44712
addq %rax, %r11 # D.44712, D.44710
movzwl 26(%rcx), %eax # *page_5(D), D.44705
movq %r11, -64(%rbp) # D.44710, %sfp
andw $32767, %ax #, D.44705
movzwl %ax, %eax # D.44705, D.44710
addq $63, %rax #, D.44710
shrq $6, %rax #, D.44710
leaq 0(,%rax,8), %rdx #, D.44710
call memset #
movq -48(%rbp), %r8 # %sfp, map
movq -72(%rbp), %r9 # %sfp, s
movq -56(%rbp), %r14 # %sfp, page
movq %r8, %rdx # map,
movq %r8, -80(%rbp) # map, %sfp
movq %r9, %rdi # s,
movq %r9, -48(%rbp) # s, %sfp
movq %r14, %rsi # page,
call get_map #
movq -48(%rbp), %r9 # %sfp, s
movzwl 26(%r14), %edi # *page_5(D), *page_5(D)
movq -64(%rbp), %r11 # %sfp, D.44710
movl 24(%r9), %esi # s_10(D)->size, D.44706
movl %edi, %eax # *page_5(D), D.44706
andl $32767, %eax #, D.44706
imull %esi, %eax # D.44706, D.44706
cltq
addq %r11, %rax # D.44710, D.44708
cmpq %rax, %r11 # D.44708, D.44710
jae .L569 #,
movq -80(%rbp), %r8 # %sfp, map
leaq (%rbx,%rbx,2), %rax #, tmp291
movq %r11, %r14 # D.44710, p
salq $3, %rax #, tmp292
movslq %esi, %rcx # D.44706, D.44709
movabsq $131939247849472, %r10 #, tmp404
movq %rax, -48(%rbp) # tmp292, %sfp
.p2align 4,,10
.p2align 3
.L594:
movq %r14, %rax # p, D.44709
subq %r11, %rax # D.44710, D.44709
cqto
idivq %rcx # D.44709
cltq
#APP
# 318 "./arch/x86/include/asm/bitops.h" 1
bt %rax,(%r8) # D.44709, *map_8(D)
sbb %eax,%eax # oldbit
# 0 "" 2
#NO_APP
testl %eax, %eax # oldbit
jne .L573 #,
movslq 32(%r9), %rax # MEM[(struct kmem_cache *)s_10(D) + 32B],
leaq 8(%r14,%rax), %r12 #, p
testl %eax, %eax # D.44706
jne .L575 #,
movslq 80(%r9), %r12 # MEM[(int *)s_10(D) + 80B], D.44707
addq %r14, %r12 # p, p
.L575:
addq -48(%rbp), %r12 # %sfp, D.44714
movq $-1, %rdx #, end
movq jiffies(%rip), %rcx # jiffies, age
movq 8(%r13), %rsi # t_22(D)->count, D.44710
subq 16(%r12), %rcx # MEM[(const struct track *)_72].when, age
movq %rsi, %rax # D.44710, end
jmp .L587 #
.p2align 4,,10
.p2align 3
.L612:
movq 16(%r13), %rdi # t_22(D)->loc, t_22(D)->loc
leaq (%rbx,%rbx,8), %r15 #, D.44710
leaq (%rdi,%r15,8), %rdi #, D.44715
movq (%r12), %r15 # MEM[(const struct track *)_72].addr, tmp439
cmpq %r15, 8(%rdi) # tmp439, _90->addr
je .L610 #,
jbe .L611 #,
movq %rbx, %rax # end, end
.L587:
movq %rax, %rbx # end, D.44709
subq %rdx, %rbx # end, D.44709
addq $1, %rbx #, D.44709
movq %rbx, %rdi # D.44709, tmp306
shrq $63, %rdi #, tmp306
addq %rdi, %rbx # tmp306, tmp308
sarq %rbx # tmp308
addq %rdx, %rbx # end, end
cmpq %rbx, %rax # end, end
jne .L612 #,
movq 0(%r13), %rax # t_22(D)->max, D.44710
cmpq %rax, %rsi # D.44710, D.44710
jae .L613 #,
.L588:
movq 16(%r13), %rax # t_22(D)->loc, t_22(D)->loc
leaq (%rbx,%rbx,8), %rdx #, D.44710
cmpq %rsi, %rbx # D.44710, end
leaq (%rax,%rdx,8), %r15 #, l
jb .L614 #,
.L590:
addq $1, %rsi #, tmp341
movq %rsi, 8(%r13) # tmp341, t_22(D)->count
movq $1, (%r15) #, l_160->count
movq (%r12), %rax # MEM[(const struct track *)_72].addr, D.44710
movq %rcx, 16(%r15) # age, l_160->sum_time
movq %rcx, 24(%r15) # age, l_160->min_time
movq %rcx, 32(%r15) # age, l_160->max_time
movq %rax, 8(%r15) # D.44710, l_160->addr
movslq 12(%r12), %rax # MEM[(const struct track *)_72].pid, MEM[(const struct track *)_72].pid
movq %rax, 40(%r15) # MEM[(const struct track *)_72].pid, l_160->min_pid
movslq 12(%r12), %rax # MEM[(const struct track *)_72].pid, MEM[(const struct track *)_72].pid
movq $0, 56(%r15) #, MEM[(long unsigned int *)l_160 + 56B]
movq %rax, 48(%r15) # MEM[(const struct track *)_72].pid, l_160->max_pid
movl 8(%r12), %eax # MEM[(const struct track *)_72].cpu, D.44709
#APP
# 80 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts %rax,56(%r15) # D.44709, MEM[(volatile long int *)_175]
# 0 "" 2
#NO_APP
movl $2147483648, %eax #, tmp446
movq $0, 64(%r15) #, MEM[(long unsigned int *)l_160 + 64B]
addq %rax, %r12 # tmp446, y
movq %r10, %rax # tmp404, iftmp.154
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rax, %r12 # iftmp.154, x
movq %r12, %rcx # x, __pfn
movq %r12, %rax # x, D.44710
shrq $34, %r12 #, D.44710
movq mem_section(,%r12,8), %rdx # mem_section, D.44711
shrq $12, %rcx #, __pfn
shrq $27, %rax #, D.44710
testq %rdx, %rdx # D.44711
je .L592 #,
andl $127, %eax #, tmp351
salq $5, %rax #, tmp351
movq (%rdx,%rax), %rax # MEM[(struct mem_section *)_195], map
.L608:
andq $-4, %rax #, map
salq $6, %rcx #, tmp354
addq $64, %r15 #, D.44720
movq (%rcx,%rax), %rax #* map, D.44709
shrq $39, %rax #, D.44709
andl $63, %eax #, D.44709
#APP
# 80 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts %rax,(%r15) # D.44709, MEM[(volatile long int *)_251]
# 0 "" 2
#NO_APP
.L609:
movq -56(%rbp), %rax # %sfp, page
movl 24(%r9), %esi # s_10(D)->size, D.44706
movzwl 26(%rax), %edi # *page_5(D), *page_5(D)
.p2align 4,,10
.p2align 3
.L573:
movl %edi, %eax # *page_5(D), D.44706
movslq %esi, %rcx # D.44706, D.44709
andl $32767, %eax #, D.44706
addq %rcx, %r14 # D.44709, p
imull %esi, %eax # D.44706, D.44706
cltq
addq %r11, %rax # D.44710, D.44708
cmpq %rax, %r14 # D.44708, p
jb .L594 #,
.L569:
addq $56, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L610:
addq $1, (%rdi) #, _321->count
cmpq $0, 16(%r12) #, MEM[(const struct track *)_72].when
je .L578 #,
addq %rcx, 16(%rdi) # age, _321->sum_time
cmpq 24(%rdi), %rcx # _321->min_time, age
jae .L579 #,
movq %rcx, 24(%rdi) # age, _321->min_time
.L579:
cmpq 32(%rdi), %rcx # _321->max_time, age
jbe .L580 #,
movq %rcx, 32(%rdi) # age, _321->max_time
.L580:
movslq 12(%r12), %rax # MEM[(const struct track *)_72].pid, D.44709
cmpq 40(%rdi), %rax # _321->min_pid, D.44709
jge .L581 #,
movq %rax, 40(%rdi) # D.44709, _321->min_pid
movslq 12(%r12), %rax # MEM[(const struct track *)_72].pid, D.44709
.L581:
cmpq %rax, 48(%rdi) # D.44709, _321->max_pid
jge .L606 #,
movq %rax, 48(%rdi) # D.44709, _321->max_pid
.L606:
leaq 56(%rdi), %rax #, D.44718
movl 8(%r12), %edx # MEM[(const struct track *)_72].cpu, D.44709
#APP
# 80 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts %rdx,(%rax) # D.44709, MEM[(volatile long int *)_211]
# 0 "" 2
#NO_APP
.L578:
movl $2147483648, %eax #, tmp440
addq %rax, %r12 # tmp440, y
movq %r10, %rax # tmp404, iftmp.154
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rax, %r12 # iftmp.154, x
movq %r12, %rcx # x, __pfn
movq %r12, %rax # x, D.44710
shrq $34, %r12 #, D.44710
movq mem_section(,%r12,8), %rdx # mem_section, D.44711
shrq $12, %rcx #, __pfn
shrq $27, %rax #, D.44710
testq %rdx, %rdx # D.44711
je .L584 #,
andl $127, %eax #, tmp321
salq $5, %rax #, tmp321
movq (%rdx,%rax), %rax # MEM[(struct mem_section *)_134], map
.L607:
andq $-4, %rax #, map
salq $6, %rcx #, tmp324
addq $64, %rdi #, D.44720
movq (%rcx,%rax), %rax #* map, D.44709
shrq $39, %rax #, D.44709
andl $63, %eax #, D.44709
#APP
# 80 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts %rax,(%rdi) # D.44709, MEM[(volatile long int *)_213]
# 0 "" 2
#NO_APP
movq -56(%rbp), %rax # %sfp, page
movl 24(%r9), %esi # s_10(D)->size, D.44706
movzwl 26(%rax), %edi # *page_5(D), *page_5(D)
jmp .L573 #
.p2align 4,,10
.p2align 3
.L611:
movq %rbx, %rdx # end, end
jmp .L587 #
.L613:
leaq (%rax,%rax), %rsi #, D.44710
movl $32, %edx #,
movq %r13, %rdi # t,
movq %r8, -96(%rbp) # map, %sfp
movq %r9, -88(%rbp) # s, %sfp
movq %r11, -80(%rbp) # D.44710, %sfp
movq %r10, -72(%rbp) # tmp404, %sfp
movq %rcx, -64(%rbp) # age, %sfp
call alloc_loc_track #
movq -64(%rbp), %rcx # %sfp, age
testl %eax, %eax # D.44706
movq -72(%rbp), %r10 # %sfp, tmp404
movq -80(%rbp), %r11 # %sfp, D.44710
movq -88(%rbp), %r9 # %sfp, s
movq -96(%rbp), %r8 # %sfp, map
je .L609 #,
movq 8(%r13), %rsi # t_22(D)->count, D.44710
jmp .L588 #
.L614:
leaq 72(%r15), %rdi #, D.44708
subq %rbx, %rsi # end, D.44710
movq %r8, -96(%rbp) # map, %sfp
leaq (%rsi,%rsi,8), %rdx #, D.44710
movq %r15, %rsi # l,
movq %r9, -88(%rbp) # s, %sfp
salq $3, %rdx #, tmp339
movq %r11, -80(%rbp) # D.44710, %sfp
movq %r10, -72(%rbp) # tmp404, %sfp
movq %rcx, -64(%rbp) # age, %sfp
call memmove #
movq 8(%r13), %rsi # t_22(D)->count, D.44710
movq -96(%rbp), %r8 # %sfp, map
movq -88(%rbp), %r9 # %sfp, s
movq -80(%rbp), %r11 # %sfp, D.44710
movq -72(%rbp), %r10 # %sfp, tmp404
movq -64(%rbp), %rcx # %sfp, age
jmp .L590 #
.L584:
movq 0, %rax # MEM[(struct mem_section *)0B], map
jmp .L607 #
.L592:
movq 0, %rax # MEM[(struct mem_section *)0B], map
jmp .L608 #
.L570:
movq 0, %rax # MEM[(struct mem_section *)0B], map
movq -56(%rbp), %rcx # %sfp, page
andq $-4, %rax #, map
jmp .L605 #
.size process_slab, .-process_slab
.p2align 4,,15
.type slab_err, @function
slab_err:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
leaq 16(%rbp), %rax #, tmp81
movq %rsi, %rbx # page, page
subq $176, %rsp #,
movl $100, %esi #,
movq %rcx, 152(%rsp) #,
leaq 28(%rsp), %rdi #, tmp83
movq %rsp, %rcx #,
movq %rax, 8(%rsp) # tmp81, MEM[(struct [1] *)&args].overflow_arg_area
leaq 128(%rsp), %rax #, tmp82
movq %r8, 160(%rsp) #,
movq %r9, 168(%rsp) #,
movl $24, (%rsp) #, MEM[(struct [1] *)&args].gp_offset
movq %rax, 16(%rsp) # tmp82, MEM[(struct [1] *)&args].reg_save_area
call vsnprintf #
leaq 28(%rsp), %rdx #, tmp84
movq %r12, %rdi # s,
movq $.LC34, %rsi #,
xorl %eax, %eax #
call slab_bug #
movzwl 26(%rbx), %edx # *page_8(D), *page_8(D)
movq %rbx, %rsi # page,
movzwl 24(%rbx), %ecx # page_8(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44732
movq $.LC19, %rdi #,
xorl %eax, %eax #
movq (%rbx), %r9 # page_8(D)->flags,
movq 16(%rbx), %r8 # page_8(D)->D.11432.D.11414.freelist,
andl $32767, %edx #, D.44732
call printk #
call dump_stack #
addq $176, %rsp #,
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size slab_err, .-slab_err
.section .rodata.str1.1
.LC35:
.string "Freechain corrupt"
.LC36:
.string "Freelist cleared"
.section .rodata.str1.8
.align 8
.LC37:
.string "Wrong number of objects. Found %d but should be %d"
.section .rodata.str1.1
.LC38:
.string "Number of objects adjusted."
.section .rodata.str1.8
.align 8
.LC39:
.string "Wrong object count. Counter is %d but counted were %d"
.section .rodata.str1.1
.LC40:
.string "Object count adjusted."
.text
.p2align 4,,15
.type on_freelist, @function
on_freelist:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
movq %rsi, %r14 # page, page
pushq %r13 #
movq %rdx, %r13 # search, search
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq 16(%rsi), %r9 # page_11(D)->D.11432.D.11414.freelist, object
movzwl 26(%rsi), %edi # *page_11(D), D.44742
andw $32767, %di #, D.44742
testq %r9, %r9 # object
movzwl %di, %esi # D.44742, D.44741
je .L639 #,
cmpq %rdx, %r9 # search, object
je .L632 #,
movabsq $-131941395333120, %r10 #, tmp179
movq (%r14), %rax # MEM[(const struct page *)page_11(D)], D.44744
movq %r14, %rcx # page, D.44748
shrq $45, %rax #, D.44744
movq %rax, %rdx # D.44744, D.44744
andl $127, %eax #, D.44744
shrq $7, %rdx #, D.44744
salq $5, %rax #, D.44744
movq mem_section(,%rdx,8), %rdx # mem_section, D.44746
addq %rdx, %rax # D.44746, D.44746
testq %rdx, %rdx # D.44746
movl $0, %edx #, tmp173
cmove %rdx, %rax # D.44746,, tmp173, D.44746
xorl %r15d, %r15d # object
xorl %ebx, %ebx # nr
movq (%rax), %rax # MEM[(struct mem_section *)_66], map
andq $-4, %rax #, map
subq %rax, %rcx # map, D.44748
movq %rcx, %rax # D.44748, D.44748
sarq $6, %rax #, D.44748
salq $12, %rax #, D.44748
addq %rax, %r10 # D.44748, D.44744
jmp .L623 #
.p2align 4,,10
.p2align 3
.L640:
movslq 24(%r12), %r11 # MEM[(int *)s_16(D) + 24B],
movl %r11d, %eax # D.44741, D.44741
imull %esi, %eax # D.44741, D.44741
cltq
addq %r10, %rax # D.44744, D.44751
cmpq %rax, %r9 # D.44751, object
jae .L621 #,
movq %r9, %rax # object, D.44747
subq %r10, %rax # D.44744, D.44747
cqto
idivq %r11 # D.44744
testq %rdx, %rdx # D.44747
jne .L621 #,
movslq 32(%r12), %rax # MEM[(struct kmem_cache *)s_16(D) + 32B], D.44750
addl $1, %ebx #, nr
movq (%r9,%rax), %rax # *_89, object
testq %rax, %rax # object
je .L619 #,
cmpl %esi, %ebx # D.44741, nr
jg .L619 #,
cmpq %rax, %r13 # object, search
je .L632 #,
movq %r9, %r15 # object, object
movq %rax, %r9 # object, object
.L623:
cmpq %r9, %r10 # object, D.44744
jbe .L640 #,
.L621:
testq %r15, %r15 # object
je .L641 #,
xorl %eax, %eax #
movq $.LC35, %rdx #,
movq $.LC34, %rsi #,
movq %r12, %rdi # s,
call slab_bug #
movq %r14, %rsi # page,
movq %r12, %rdi # s,
movq %r15, %rdx # object,
call print_trailer #
movslq 32(%r12), %rax # MEM[(struct kmem_cache *)s_16(D) + 32B], D.44750
movq $0, (%r15,%rax) #, *_87
movzwl 26(%r14), %edi # *page_11(D), D.44742
movslq 24(%r12), %r11 #, D.44744
andw $32767, %di #, D.44742
movzwl %di, %esi # D.44742, D.44741
.L619:
movq (%r14), %rcx # MEM[(const long unsigned int *)page_11(D)], D.44744
movl $4096, %eax #, D.44744
movslq 88(%r12), %rdx # s_16(D)->reserved,
andb $64, %ch #, D.44744
jne .L642 #,
.L625:
subq %rdx, %rax # D.44744, D.44744
xorl %edx, %edx # tmp189
movl $32767, %r15d #, max_objects
divq %r11 # D.44744
cltq
movzwl %di, %edi # D.44742, D.44744
cmpq $32767, %rax #, max_objects
cmovbe %rax, %r15 # max_objects,, max_objects
cmpq %r15, %rdi # max_objects, D.44744
je .L626 #,
movq %r15, %r8 # max_objects,
movl %esi, %ecx # D.44741,
movq $.LC37, %rdx #,
movq %r14, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_err #
movzwl 26(%r14), %eax #, tmp196
andw $32767, %r15w #, tmp193
movq $.LC38, %rsi #,
movq %r12, %rdi # s,
andw $-32768, %ax #, tmp196
orl %r15d, %eax # tmp193, tmp196
movw %ax, 26(%r14) # tmp196,
xorl %eax, %eax #
call slab_fix #
movzwl 26(%r14), %esi # *page_11(D), *page_11(D)
andl $32767, %esi #, D.44741
.L626:
movzwl 24(%r14), %ecx # page_11(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44741
subl %ebx, %esi # nr, D.44741
movl %esi, %r8d # D.44741, D.44741
cmpl %esi, %ecx # D.44741, D.44741
je .L627 #,
movq %r14, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
movq $.LC39, %rdx #,
call slab_err #
movzwl 26(%r14), %eax # *page_11(D), tmp209
movq %r12, %rdi # s,
movq $.LC40, %rsi #,
andw $32767, %ax #, tmp209
subl %ebx, %eax # nr, tmp209
movw %ax, 24(%r14) # tmp209, page_11(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
xorl %eax, %eax #
call slab_fix #
.L627:
xorl %eax, %eax # D.44741
testq %r13, %r13 # search
sete %al #, D.44741
.L636:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L642:
movq 104(%r14), %rcx # MEM[(struct page *)page_11(D) + 64B].D.11444.lru.prev, MEM[(struct page *)page_11(D) + 64B].D.11444.lru.prev
salq %cl, %rax # MEM[(struct page *)page_11(D) + 64B].D.11444.lru.prev, D.44744
jmp .L625 #
.p2align 4,,10
.p2align 3
.L632:
popq %rbx #
movl $1, %eax #, D.44741
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L639:
xorl %ebx, %ebx # nr
movslq 24(%r12), %r11 #, D.44744
jmp .L619 #
.p2align 4,,10
.p2align 3
.L641:
movq $.LC33, %rdx #,
movq %r14, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_err #
movzwl 26(%r14), %eax # *page_11(D), D.44742
movq %r12, %rdi # s,
movq $0, 16(%r14) #, page_11(D)->D.11432.D.11414.freelist
movq $.LC36, %rsi #,
andw $32767, %ax #, D.44742
movw %ax, 24(%r14) # D.44742, page_11(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
xorl %eax, %eax #
call slab_fix #
xorl %eax, %eax # D.44741
jmp .L636 #
.size on_freelist, .-on_freelist
.section .rodata.str1.8
.align 8
.LC41:
.string "Padding overwritten. 0x%p-0x%p"
.text
.p2align 4,,15
.type slab_pad_check.part.58, @function
slab_pad_check.part.58:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
movq %rsi, %r13 # page, page
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
subq $24, %rsp #,
movq (%rsi), %rax # MEM[(const struct page *)page_1(D)], D.44776
shrq $45, %rax #, D.44776
movq %rax, %rdx # D.44776, D.44776
shrq $7, %rdx #, D.44776
movq mem_section(,%rdx,8), %rdx # mem_section, D.44778
testq %rdx, %rdx # D.44778
je .L644 #,
andl $127, %eax #, D.44776
salq $5, %rax #, D.44776
addq %rax, %rdx # D.44776, D.44778
.L644:
movq 0(%r13), %rax # MEM[(const long unsigned int *)page_1(D)], D.44776
movl $4096, %ecx #, D.44783
movq (%rdx), %rsi # MEM[(struct mem_section *)_13], map
testb $64, %ah #, D.44776
je .L645 #,
movq 104(%r13), %rcx # MEM[(struct page *)page_1(D) + 64B].D.11444.lru.prev, MEM[(struct page *)page_1(D) + 64B].D.11444.lru.prev
movl $4096, %eax #, tmp126
salq %cl, %rax # MEM[(struct page *)page_1(D) + 64B].D.11444.lru.prev, tmp141
movq %rax, %rcx # tmp141, D.44783
.L645:
subl 88(%r12), %ecx # s_32(D)->reserved, length
movl %ecx, %eax # length, tmp128
cltd
idivl 24(%r12) # s_32(D)->size
testl %edx, %edx # tmp127
movl %edx, %r15d # tmp127, tmp127
jne .L646 #,
.L648:
addq $24, %rsp #,
movl $1, %eax #, D.44777
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L646:
andq $-4, %rsi #, map
movq %r13, %rax # page, D.44780
movslq %ecx, %rcx # length, D.44784
movabsq $-131941395333120, %rbx #, tmp135
subq %rsi, %rax # map, D.44780
movslq %edx, %rdx # tmp127, D.44776
sarq $6, %rax #, D.44780
movl $90, %esi #,
salq $12, %rax #, D.44780
addq %rax, %rbx # D.44780, D.44776
addq %rcx, %rbx # D.44784, end
movq %rdx, %rcx # D.44776, D.44784
negq %rcx # D.44784
leaq (%rbx,%rcx), %r14 #, D.44786
movq %rcx, -48(%rbp) # D.44784, %sfp
movq %r14, %rdi # D.44786,
call memchr_inv #
testq %rax, %rax # fault
je .L648 #,
cmpq %rax, %rbx # fault, end
jbe .L649 #,
cmpb $90, -1(%rbx) #, MEM[(u8 *)end_38 + -1B]
movq -48(%rbp), %rcx # %sfp, D.44784
je .L652 #,
jmp .L649 #
.p2align 4,,10
.p2align 3
.L650:
cmpb $90, -1(%rbx) #, MEM[base: end_46, offset: -1B]
jne .L662 #,
.L652:
subq $1, %rbx #, end
cmpq %rax, %rbx # fault, end
jne .L650 #,
.L662:
leaq (%rbx,%rcx), %r14 #, D.44786
.L649:
leaq -1(%rbx), %r10 #, D.44786
movq %rax, %rcx # fault,
movq %r13, %rsi # page,
movq %r10, %r8 # D.44786,
movq %r12, %rdi # s,
movq $.LC41, %rdx #,
xorl %eax, %eax #
movq %r10, -48(%rbp) # D.44786, %sfp
call slab_err #
movl %r15d, %eax # tmp127, tmp146
movq %r14, %r9 # D.44786,
movq %rax, (%rsp) # tmp146,
movl $1, %r8d #,
movl $16, %ecx #,
movl $1, 8(%rsp) #,
movl $1, %edx #,
movq $.LC25, %rsi #,
movq $.LC22, %rdi #,
call print_hex_dump #
movq -48(%rbp), %r10 # %sfp, D.44786
movq %r14, %rdx # D.44786,
movq %r12, %rdi # s,
movl $90, %r8d #,
movq $.LC28, %rsi #,
xorl %eax, %eax #
movq %r10, %rcx # D.44786,
call slab_fix #
movq %rbx, %rdx # end, D.44779
movq %r14, %rdi # D.44786,
subq %r14, %rdx # D.44786, D.44779
movl $90, %esi #,
call memset #
addq $24, %rsp #,
xorl %eax, %eax # D.44777
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size slab_pad_check.part.58, .-slab_pad_check.part.58
.section .rodata.str1.1
.LC42:
.string "Not a valid slab page"
.LC43:
.string "objects %u > max %u"
.LC44:
.string "inuse %u > max %u"
.text
.p2align 4,,15
.type check_slab, @function
check_slab:
movq (%rsi), %rax # MEM[(const long unsigned int *)page_4(D)], D.44791
pushq %rbp #
movq %rsp, %rbp #,
pushq %rbx #
testb $-128, %al #, D.44791
je .L674 #,
movq (%rsi), %rcx # MEM[(const long unsigned int *)page_4(D)], D.44791
movl $4096, %eax #, D.44791
movslq 88(%rdi), %rdx # s_6(D)->reserved,
movslq 24(%rdi), %r8 # s_6(D)->size, D.44791
andb $64, %ch #, D.44791
jne .L675 #,
.L666:
subq %rdx, %rax # D.44791, D.44791
xorl %edx, %edx # tmp100
divq %r8 # D.44791
movzwl 26(%rsi), %r8d # *page_4(D), *page_4(D)
andl $32767, %r8d #, D.44790
cmpl %eax, %r8d # D.44791, D.44790
jg .L676 #,
movzwl 24(%rsi), %eax # page_4(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44790
cmpl %eax, %r8d # D.44790, D.44790
jl .L677 #,
testb $8, 9(%rdi) #, s_6(D)->flags
movl $1, %ebx #, D.44790
je .L665 #,
call slab_pad_check.part.58 #
.L665:
movl %ebx, %eax # D.44790,
popq %rbx #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L675:
movq 104(%rsi), %rcx # MEM[(struct page *)page_4(D) + 64B].D.11444.lru.prev, MEM[(struct page *)page_4(D) + 64B].D.11444.lru.prev
salq %cl, %rax # MEM[(struct page *)page_4(D) + 64B].D.11444.lru.prev, D.44791
jmp .L666 #
.p2align 4,,10
.p2align 3
.L674:
xorl %eax, %eax #
xorl %ebx, %ebx # D.44790
movq $.LC42, %rdx #,
call slab_err #
movl %ebx, %eax # D.44790,
popq %rbx #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L677:
movq 96(%rdi), %rcx # s_6(D)->name, s_6(D)->name
movl %r8d, %r9d # D.44790,
xorl %ebx, %ebx # D.44790
movl %eax, %r8d # D.44790,
movq $.LC44, %rdx #,
xorl %eax, %eax #
call slab_err #
movl %ebx, %eax # D.44790,
popq %rbx #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L676:
movq 96(%rdi), %rcx # s_6(D)->name, s_6(D)->name
movl %eax, %r9d # D.44791,
xorl %ebx, %ebx # D.44790
xorl %eax, %eax #
movq $.LC43, %rdx #,
call slab_err #
movl %ebx, %eax # D.44790,
popq %rbx #
popq %rbp #
ret
.size check_slab, .-check_slab
.p2align 4,,15
.type validate_slab_slab, @function
validate_slab_slab:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rdx, %r15 # map, map
pushq %r14 #
movq %rsi, %r14 # page, page
pushq %r13 #
movq %rdi, %r13 # s, s
pushq %r12 #
pushq %rbx #
.L679:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r14); jc .L681 #, MEM[(volatile long unsigned int *)_8],
# 0 "" 2
#NO_APP
movq (%r14), %rax # MEM[(const struct page *)page_2(D)], D.44819
shrq $45, %rax #, D.44819
movq %rax, %rdx # D.44819, D.44819
shrq $7, %rdx #, D.44819
movq mem_section(,%rdx,8), %rdx # mem_section, D.44821
testq %rdx, %rdx # D.44821
je .L682 #,
andl $127, %eax #, D.44819
salq $5, %rax #, D.44819
addq %rax, %rdx # D.44819, D.44821
.L682:
movq %r14, %rsi # page,
movq %r13, %rdi # s,
movq (%rdx), %rbx # MEM[(struct mem_section *)_36], map
call check_slab #
testl %eax, %eax # D.44820
jne .L683 #,
.L684:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r14) #, MEM[(volatile long int *)_8]
# 0 "" 2
#NO_APP
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L681:
.L694:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r14), %rax # MEM[(const long unsigned int *)page_2(D)], D.44819
testb $1, %al #, D.44819
jne .L694 #,
jmp .L679 #
.p2align 4,,10
.p2align 3
.L683:
xorl %edx, %edx #
movq %r14, %rsi # page,
movq %r13, %rdi # s,
call on_freelist #
testl %eax, %eax # D.44820
je .L684 #,
movzwl 26(%r14), %edx # *page_2(D), *page_2(D)
andq $-4, %rbx #, map
movq %r14, %rax # page, D.44823
subq %rbx, %rax # map, D.44823
xorl %esi, %esi #
movq %r15, %rdi # map,
movabsq $-131941395333120, %r12 #, tmp144
sarq $6, %rax #, D.44823
salq $12, %rax #, D.44823
andl $32767, %edx #, D.44819
addq %rax, %r12 # D.44823, D.44819
addq $63, %rdx #, D.44819
shrq $6, %rdx #, D.44819
salq $3, %rdx #, D.44819
call memset #
movq %r14, %rsi # page,
movq %r15, %rdx # map,
movq %r13, %rdi # s,
call get_map #
movzwl 26(%r14), %esi # *page_2(D), *page_2(D)
movl 24(%r13), %r8d # s_4(D)->size, D.44820
movl %esi, %eax # *page_2(D), D.44820
andl $32767, %eax #, D.44820
imull %r8d, %eax # D.44820, D.44820
cltq
addq %r12, %rax # D.44819, D.44827
cmpq %rax, %r12 # D.44827, D.44819
jae .L684 #,
movq %r12, %rbx # D.44819, p
movslq %r8d, %rcx # D.44820, D.44822
jmp .L689 #
.p2align 4,,10
.p2align 3
.L688:
movl %esi, %eax # *page_2(D), D.44820
movslq %r8d, %rcx # D.44820, D.44822
andl $32767, %eax #, D.44820
addq %rcx, %rbx # D.44822, p
imull %r8d, %eax # D.44820, D.44820
cltq
addq %r12, %rax # D.44819, D.44827
cmpq %rax, %rbx # D.44827, p
jae .L710 #,
.L689:
movq %rbx, %rax # p, D.44822
subq %r12, %rax # D.44819, D.44822
cqto
idivq %rcx # D.44822
cltq
#APP
# 318 "./arch/x86/include/asm/bitops.h" 1
bt %rax,(%r15) # D.44822, *map_5(D)
sbb %eax,%eax # oldbit
# 0 "" 2
#NO_APP
testl %eax, %eax # oldbit
je .L688 #,
movl $187, %ecx #,
movq %rbx, %rdx # p,
movq %r14, %rsi # page,
movq %r13, %rdi # s,
call check_object #
testl %eax, %eax # D.44820
je .L684 #,
movzwl 26(%r14), %esi # *page_2(D), *page_2(D)
movl 24(%r13), %r8d # s_4(D)->size, D.44820
jmp .L688 #
.p2align 4,,10
.p2align 3
.L710:
cmpq %rax, %r12 # D.44827, D.44819
jae .L684 #,
movq %r12, %rbx # D.44819, p
jmp .L693 #
.p2align 4,,10
.p2align 3
.L692:
movl %esi, %eax # *page_2(D), D.44820
movslq %r8d, %rcx # D.44820, D.44822
andl $32767, %eax #, D.44820
addq %rcx, %rbx # D.44822, p
imull %r8d, %eax # D.44820, D.44820
cltq
addq %r12, %rax # D.44819, D.44827
cmpq %rax, %rbx # D.44827, p
jae .L684 #,
.L693:
movq %rbx, %rax # p, D.44822
subq %r12, %rax # D.44819, D.44822
cqto
idivq %rcx # D.44822
cltq
#APP
# 318 "./arch/x86/include/asm/bitops.h" 1
bt %rax,(%r15) # D.44822, *map_5(D)
sbb %eax,%eax # oldbit
# 0 "" 2
#NO_APP
testl %eax, %eax # oldbit
jne .L692 #,
movl $204, %ecx #,
movq %rbx, %rdx # p,
movq %r14, %rsi # page,
movq %r13, %rdi # s,
call check_object #
testl %eax, %eax # D.44820
je .L684 #,
movzwl 26(%r14), %esi # *page_2(D), *page_2(D)
movl 24(%r13), %r8d # s_4(D)->size, D.44820
jmp .L692 #
.size validate_slab_slab, .-validate_slab_slab
.section .rodata.str1.1
.LC45:
.string "Object already free"
.section .rodata.str1.8
.align 8
.LC46:
.string "Attempt to free object(0x%p) outside of slab"
.align 8
.LC47:
.string "\0013SLUB <none>: no slab for object 0x%p.\n"
.section .rodata.str1.1
.LC48:
.string "page slab pointer corrupt."
.LC49:
.string "free"
.section .rodata.str1.8
.align 8
.LC50:
.string "\0016TRACE %s %s 0x%p inuse=%d fp=0x%p\n"
.section .rodata.str1.1
.LC51:
.string "Object at 0x%p not freed"
.LC52:
.string "Invalid object pointer 0x%p"
.section .text.unlikely
.type free_debug_processing, @function
free_debug_processing:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rsi, %r15 # page, page
pushq %r14 #
movq %r8, %r14 # flags, flags
pushq %r13 #
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rdx, %rbx # object, object
subq $32, %rsp #,
movq %rcx, -48(%rbp) # addr, %sfp
movq (%rsi), %rax # MEM[(const struct page *)page_7(D)], D.44843
shrq $39, %rax #, D.44843
andl $63, %eax #, D.44843
movq 192(%rdi,%rax,8), %r13 # s_9(D)->node, D.44840
movq %r13, %rdi # D.44840,
call _raw_spin_lock_irqsave #
movq %rax, (%r14) # D.44841, *flags_14(D)
.L712:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r15); jc .L714 #, MEM[(volatile long unsigned int *)_49],
# 0 "" 2
#NO_APP
movq %r15, %rsi # page,
movq %r12, %rdi # s,
call check_slab #
testl %eax, %eax # D.44843
je .L715 #,
testq %rbx, %rbx # object
je .L716 #,
movq (%r15), %rax # MEM[(const struct page *)page_7(D)], D.44841
shrq $45, %rax #, D.44841
movq %rax, %rdx # D.44841, D.44841
shrq $7, %rdx #, D.44841
movq mem_section(,%rdx,8), %rdx # mem_section, D.44846
testq %rdx, %rdx # D.44846
je .L717 #,
andl $127, %eax #, D.44841
salq $5, %rax #, D.44841
addq %rax, %rdx # D.44841, D.44846
.L717:
movq (%rdx), %rax # MEM[(struct mem_section *)_67], map
movq %r15, %rcx # page, D.44848
movabsq $-131941395333120, %rdx #, tmp143
andq $-4, %rax #, map
subq %rax, %rcx # map, D.44848
movq %rcx, %rax # D.44848, D.44848
sarq $6, %rax #, D.44848
salq $12, %rax #, D.44848
addq %rdx, %rax # tmp143, D.44841
cmpq %rax, %rbx # D.44841, object
jb .L718 #,
movw 26(%r15), %dx # *page_7(D), *page_7(D)
movslq 24(%r12), %rcx # MEM[(int *)s_9(D) + 24B],
andl $32767, %edx #, D.44843
imull %ecx, %edx # D.44843, D.44843
movslq %edx, %rdx # D.44843, D.44851
addq %rax, %rdx # D.44841, D.44852
cmpq %rdx, %rbx # D.44852, object
jae .L718 #,
movq %rbx, %rsi # object, D.44847
subq %rax, %rsi # D.44841, D.44847
movq %rsi, %rax # D.44847, D.44847
cqto
idivq %rcx # D.44847
testq %rdx, %rdx # D.44847
jne .L718 #,
jmp .L716 #
.L748:
movl $204, %ecx #,
movq %rbx, %rdx # object,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
call check_object #
testl %eax, %eax # D.44843
je .L719 #,
movq 48(%r15), %r11 # page_7(D)->D.11450.slab_cache, D.44844
cmpq %r12, %r11 # s, D.44844
je .L720 #,
movq (%r15), %rax # MEM[(const long unsigned int *)page_7(D)], D.44841
testb $-128, %al #, D.44841
jne .L721 #,
movq %rbx, %rcx # object,
movq $.LC46, %rdx #,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_err #
.L715:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r15) #, MEM[(volatile long int *)_49]
# 0 "" 2
#NO_APP
movq (%r14), %rsi # *flags_14(D),
movq %r13, %rdi # D.44840,
xorl %r13d, %r13d # D.44840
call _raw_spin_unlock_irqrestore #
movq %rbx, %rdx # object,
movq $.LC51, %rsi #,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_fix #
jmp .L747 #
.L714:
.L726:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r15), %rax # MEM[(const long unsigned int *)page_7(D)], D.44841
testb $1, %al #, D.44841
jne .L726 #,
jmp .L712 #
.L718:
movq %rbx, %rcx # object,
movq $.LC52, %rdx #,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_err #
jmp .L715 #
.L716:
movq %rbx, %rdx # object,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
call on_freelist #
testl %eax, %eax # D.44843
je .L748 #,
movq $.LC45, %rdx #,
jmp .L750 #
.L721:
testq %r11, %r11 # D.44844
movq $.LC48, %rdx #,
jne .L750 #,
movq %rbx, %rsi # object,
movq $.LC47, %rdi #,
xorl %eax, %eax #
call printk #
call dump_stack #
jmp .L715 #
.L750:
movq %r12, %rdi # s,
movq $.LC34, %rsi #,
xorl %eax, %eax #
call slab_bug #
movq %rbx, %rdx # object,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
call print_trailer #
jmp .L715 #
.L720:
testb $1, 10(%r12) #, _26->flags
je .L723 #,
movq -48(%rbp), %rcx # %sfp,
movl $1, %edx #,
movq %rbx, %rsi # object,
movq %r12, %rdi # s,
movq %r11, -56(%rbp) # D.44844, %sfp
call set_track #
movq -56(%rbp), %r11 # %sfp, D.44844
.L723:
testb $32, 10(%r11) #, _26->flags
je .L724 #,
movq 96(%r11), %rsi # _26->name, _26->name
movq %rbx, %rcx # object,
movq $.LC49, %rdx #,
movq 16(%r15), %r9 # page_7(D)->D.11432.D.11414.freelist,
movq $.LC50, %rdi #,
xorl %eax, %eax #
movzwl 24(%r15), %r8d # page_7(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse,
movq %r11, -48(%rbp) # D.44844, %sfp
call printk #
movq -48(%rbp), %r11 # %sfp, D.44844
movq %rbx, %r9 # object,
movl $1, %r8d #,
movl $16, %ecx #,
movl $1, %edx #,
movl $1, 8(%rsp) #,
movq $.LC23, %rsi #,
movq $.LC22, %rdi #,
movl 28(%r11), %eax # _26->object_size, tmp172
movq %rax, (%rsp) # tmp172,
call print_hex_dump #
call dump_stack #
movq -48(%rbp), %r11 # %sfp, D.44844
.L724:
movl $187, %edx #,
movq %rbx, %rsi # object,
movq %r11, %rdi # D.44844,
call init_object #
.L719:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r15) #, MEM[(volatile long int *)_49]
# 0 "" 2
#NO_APP
.L747:
addq $32, %rsp #,
movq %r13, %rax # D.44840,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size free_debug_processing, .-free_debug_processing
.text
.p2align 4,,15
.type __free_slab, @function
__free_slab:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rdi, %r15 # s, s
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
movq %rsi, %rbx # page, page
subq $16, %rsp #,
movq (%rsi), %rax # MEM[(const long unsigned int *)page_7(D)], D.44866
testb $64, %ah #, D.44866
je .L761 #,
movq 104(%rsi), %rcx # MEM[(struct page *)page_7(D) + 64B].D.11444.lru.prev, D.44874
movl $1, %r13d #, D.44868
sall %cl, %r13d # D.44874, D.44868
movl %ecx, %r12d # D.44874, D.44878
movl %r13d, %r14d # D.44868, D.44868
negl %r14d # D.44868
.L752:
movq 8(%r15), %rax # MEM[(struct kmem_cache *)s_10(D) + 8B], D.44866
testl $2166016, %eax #, D.44866
jne .L774 #,
movq (%rbx), %rdi # MEM[(const struct page *)page_7(D)], D.44866
.L753:
andl $131072, %eax #, D.44866
movq %rdi, %rcx # D.44866, D.44868
movq (%rbx), %rdx # MEM[(const long unsigned int *)page_7(D)], D.44866
cmpq $1, %rax #, D.44866
sbbl %esi, %esi # iftmp.52
shrq $37, %rdi #, D.44879
andl $3, %edi #, D.44879
shrq $39, %rcx #, D.44868
notl %esi # iftmp.52
movq %rdi, %rdx # D.44879, tmp192
salq $11, %rdi #, D.44871
andl $63, %ecx #, D.44868
salq $8, %rdx #, tmp192
addl $14, %esi #, iftmp.52
subq %rdx, %rdi # tmp192, D.44871
movl %r14d, %edx # D.44868,
addq node_data(,%rcx,8), %rdi # node_data, D.44871
call mod_zone_page_state #
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $6,(%rbx) #, MEM[(volatile long int *)_103]
# 0 "" 2
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $7,(%rbx) #, MEM[(volatile long int *)_103]
# 0 "" 2
#NO_APP
movl $-1, 24(%rbx) #, MEM[(struct atomic_t *)page_7(D) + 24B].counter
#APP
# 14 "./arch/x86/include/asm/current.h" 1
movq %gs:current_task,%rax #, pfo_ret__
# 0 "" 2
#NO_APP
cmpq $0, 1640(%rax) #, pfo_ret___104->reclaim_state
je .L760 #,
movq 1640(%rax), %rax # pfo_ret___105->reclaim_state, D.44872
movslq %r13d, %r13 # D.44868, D.44866
addq %r13, (%rax) # D.44866, _33->reclaimed_slab
.L760:
movl %r12d, %esi # D.44878,
movq %rbx, %rdi # page,
call __free_pages #
addq $16, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L761:
xorl %r12d, %r12d # D.44878
movl $-1, %r14d #, D.44868
movl $1, %r13d #, D.44868
jmp .L752 #
.L774:
testb $8, %ah #, D.44866
jne .L776 #,
.L754:
movq (%rbx), %rdi # MEM[(const struct page *)page_7(D)], D.44866
movq %rdi, %rax # D.44866, D.44866
shrq $45, %rax #, D.44866
movq %rax, %rdx # D.44866, D.44866
shrq $7, %rdx #, D.44866
movq mem_section(,%rdx,8), %rdx # mem_section, D.44875
testq %rdx, %rdx # D.44875
je .L755 #,
andl $127, %eax #, D.44866
salq $5, %rax #, D.44866
addq %rax, %rdx # D.44866, D.44875
.L755:
movq (%rdx), %rax # MEM[(struct mem_section *)_64], map
movq %rbx, %r9 # page, D.44876
movl 24(%r15), %ecx # s_10(D)->size, D.44868
andq $-4, %rax #, map
subq %rax, %r9 # map, D.44876
movabsq $-131941395333120, %rax #, tmp156
sarq $6, %r9 #, D.44876
movq %rax, -56(%rbp) # tmp156, %sfp
salq $12, %r9 #, D.44876
addq %rax, %r9 # tmp156, p
jmp .L756 #
.L758:
movl $187, %ecx #,
movq %r9, %rdx # p,
movq %r15, %rdi # s,
movq %rbx, %rsi # page,
movq %r9, -48(%rbp) # p, %sfp
call check_object #
movl 24(%r15), %ecx # s_10(D)->size, D.44868
movq -48(%rbp), %r9 # %sfp, p
movq (%rbx), %rdi # MEM[(const struct page *)page_7(D)], D.44866
movslq %ecx, %rax # D.44868, D.44869
addq %rax, %r9 # D.44869, p
.L756:
movq %rdi, %rdx # D.44866, D.44866
shrq $45, %rdx #, D.44866
movq %rdx, %rax # D.44866, D.44866
shrq $7, %rax #, D.44866
movq mem_section(,%rax,8), %rax # mem_section, D.44875
testq %rax, %rax # D.44875
je .L757 #,
andl $127, %edx #, D.44866
salq $5, %rdx #, D.44866
addq %rdx, %rax # D.44866, D.44875
.L757:
movq (%rax), %rax # MEM[(struct mem_section *)_84], map
movq %rbx, %rsi # page, D.44876
movzwl 26(%rbx), %edx # *page_7(D), *page_7(D)
andq $-4, %rax #, map
subq %rax, %rsi # map, D.44876
andl $32767, %edx #, D.44868
movq %rsi, %rax # D.44876, D.44876
imull %ecx, %edx # D.44868, D.44868
sarq $6, %rax #, D.44876
salq $12, %rax #, D.44876
addq -56(%rbp), %rax # %sfp, D.44866
movslq %edx, %rdx # D.44868, D.44869
addq %rdx, %rax # D.44869, D.44870
cmpq %rax, %r9 # D.44870, p
jb .L758 #,
movq 8(%r15), %rax # s_10(D)->flags, D.44866
jmp .L753 #
.L776:
movq %rbx, %rsi # page,
movq %r15, %rdi # s,
call slab_pad_check.part.58 #
jmp .L754 #
.size __free_slab, .-__free_slab
.p2align 4,,15
.type discard_slab, @function
discard_slab:
pushq %rbp #
movq (%rsi), %rax # MEM[(const struct page *)page_2(D)], D.44890
movq %rsp, %rbp #,
movzwl 26(%rsi), %edx # *page_2(D), D.44888
shrq $39, %rax #, D.44890
andl $63, %eax #, D.44890
andw $32767, %dx #, D.44888
movq 192(%rdi,%rax,8), %rax # s_5(D)->node, D.44891
#APP
# 99 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; decq 32(%rax) # MEM[(struct atomic64_t *)_12].counter
# 0 "" 2
#NO_APP
movzwl %dx, %edx # D.44888, D.44893
#APP
# 59 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; subq %rdx,40(%rax) # D.44893, MEM[(struct atomic64_t *)_13].counter
# 0 "" 2
#NO_APP
testb $8, 10(%rdi) #, s_5(D)->flags
jne .L781 #,
call __free_slab #
popq %rbp #
ret
.L781:
leaq 32(%rsi), %rdi #, head
movq $rcu_free_slab, %rsi #,
call call_rcu_sched #
popq %rbp #
ret
.size discard_slab, .-discard_slab
.p2align 4,,15
.type unfreeze_partials.isra.59, @function
unfreeze_partials.isra.59:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rsi, %r15 # ISRA.1378, ISRA.1378
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
andq $-16, %rsp #,
addq $-128, %rsp #,
movq (%rsi), %r12 # *ISRA.1378_102(D), page
testq %r12, %r12 # page
je .L782 #,
movq %rdi, %r13 # s, s
xorl %r14d, %r14d # page
xorl %esi, %esi # n
.p2align 4,,10
.p2align 3
.L797:
movq 32(%r12), %rax # page_61->D.11444.D.11439.next, D.44897
movq %rax, (%r15) # D.44897, *ISRA.1378_102(D)
movq (%r12), %rax # MEM[(const struct page *)page_61], D.44899
shrq $39, %rax #, D.44899
andl $63, %eax #, D.44899
movq 192(%r13,%rax,8), %rbx # s_8(D)->node, n
cmpq %rsi, %rbx # n, n
je .L793 #,
testq %rsi, %rsi # n
je .L785 #,
#APP
# 160 "./arch/x86/include/asm/spinlock.h" 1
addb $1, (%rsi) #, _11->D.5358.tickets.head
# 0 "" 2
#NO_APP
.L785:
movq %rbx, %rdi # n,
call _raw_spin_lock #
movq %rbx, %rsi # n, n
jmp .L793 #
.p2align 4,,10
.p2align 3
.L817:
movq %rax, %rbx # D.44902, D.44902
#APP
# 384 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%r12); sete %al #, page_61->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
jne .L787 #,
.L788:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
.L793:
movq 24(%r12), %rdx # page_61->D.11432.D.11431.counters, D.44898
movq 16(%r12), %rax # page_61->D.11432.D.11414.freelist, D.44902
movl %edx, %edi # D.44898, tmp140
movq %rdx, 24(%rsp) # D.44898, new.D.11432.D.11431.counters
shrl $24, %edi #, tmp140
movl %edi, %ecx # tmp140, tmp104
andl $127, %ecx #, tmp105
movb %cl, 27(%rsp) # tmp105,
testb $64, 11(%r13) #, MEM[(struct kmem_cache *)s_8(D) + 8B]
movq 24(%rsp), %rcx # new.D.11432.D.11431.counters, D.44898
jne .L817 #,
.L816:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r12); jc .L791 #, MEM[(volatile long unsigned int *)_20],
# 0 "" 2
#NO_APP
cmpq 16(%r12), %rax # page_61->D.11432.D.11414.freelist, D.44902
je .L818 #,
.L792:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_20]
# 0 "" 2
#NO_APP
jmp .L788 #
.p2align 4,,10
.p2align 3
.L791:
.L801:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r12), %rdi # MEM[(const long unsigned int *)page_61], D.44898
andl $1, %edi #, D.44898
jne .L801 #,
jmp .L816 #
.p2align 4,,10
.p2align 3
.L818:
cmpq 24(%r12), %rdx # page_61->D.11432.D.11431.counters, D.44898
jne .L792 #,
movq %rcx, 88(%rsp) # D.44898, tmp.D.11432.D.11431.counters
shrl $24, %ecx #, tmp
movzbl 27(%r12), %eax #, tmp121
andl $-128, %ecx #, tmp118
andl $127, %eax #, tmp121
orl %ecx, %eax # tmp118, tmp121
movb %al, 27(%r12) # tmp121,
movzwl 88(%rsp), %eax # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movzwl 90(%rsp), %edx # tmp, D.44906
movw %ax, 24(%r12) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_61->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movzwl 26(%r12), %eax #, tmp133
andw $32767, %dx #, D.44906
andw $-32768, %ax #, tmp133
orl %edx, %eax # D.44906, tmp133
movw %ax, 26(%r12) # tmp133,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_40]
# 0 "" 2
.p2align 4,,10
.p2align 3
#NO_APP
.L787:
cmpw $0, 24(%rsp) #, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movq 8(%rsi), %rax # n_52->nr_partial, D.44898
je .L802 #,
.L794:
leaq 32(%r12), %rdx #, D.44907
addq $1, %rax #, tmp134
movq %rax, 8(%rsi) # tmp134, n_52->nr_partial
movq 24(%rsi), %rax # MEM[(struct list_head *)n_52 + 16B].prev, D.44907
leaq 16(%rsi), %rcx #, tmp135
movq %rdx, 24(%rsi) # D.44907, MEM[(struct list_head *)n_52 + 16B].prev
movq %rcx, 32(%r12) # tmp135, MEM[(struct list_head *)page_61 + 32B].next
movq %rax, 40(%r12) # D.44907, MEM[(struct list_head *)page_61 + 32B].prev
movq %rdx, (%rax) # D.44907, _48->next
.L795:
movq (%r15), %r12 # *ISRA.1378_102(D), page
testq %r12, %r12 # page
jne .L797 #,
testq %rsi, %rsi # n
je .L798 #,
#APP
# 160 "./arch/x86/include/asm/spinlock.h" 1
addb $1, (%rsi) #, _49->D.5358.tickets.head
# 0 "" 2
#NO_APP
.L798:
testq %r14, %r14 # page
jne .L810 #,
.p2align 4,,4
jmp .L782 #
.p2align 4,,10
.p2align 3
.L819:
movq %rbx, %r14 # page, page
.L810:
movq 32(%r14), %rbx # page_34->D.11444.D.11439.next, page
movq %r14, %rsi # page,
movq %r13, %rdi # s,
call discard_slab #
testq %rbx, %rbx # page
jne .L819 #,
.L782:
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L802:
cmpq 16(%r13), %rax # s_8(D)->min_partial, D.44898
jb .L794 #,
movq %r14, 32(%r12) # page, page_61->D.11444.D.11439.next
movq %r12, %r14 # page, page
jmp .L795 #
.size unfreeze_partials.isra.59, .-unfreeze_partials.isra.59
.section .text.unlikely
.type get_partial_node.isra.60, @function
get_partial_node.isra.60:
pushq %rbp #
movq %rsi, %r11 # n, n
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
andq $-16, %rsp #,
subq $168, %rsp #,
testq %r11, %r11 # n
movq %rdx, 32(%rsp) # ISRA.1381, %sfp
movl %ecx, 20(%rsp) # flags, %sfp
je .L845 #,
cmpq $0, 8(%r11) #, n_1(D)->nr_partial
je .L845 #,
movq %rdi, %r13 # s, s
movq %r11, %rdi # n,
movq %r11, 24(%rsp) # n, %sfp
call _raw_spin_lock #
movq 24(%rsp), %r11 # %sfp, n
xorl %r9d, %r9d # available
movq 32(%rsp), %rsi # %sfp, ISRA.1381
xorl %r15d, %r15d # object
movq 16(%r11), %rax # n_1(D)->partial.next, __mptr
leaq 16(%r11), %r10 #, D.44931
movq (%rax), %r14 # MEM[(struct page *)__mptr_4 + -32B].D.11444.lru.next, MEM[(struct page *)__mptr_4 + -32B].D.11444.lru.next
leaq -32(%rax), %r12 #, page
subq $32, %r14 #, page
.L822:
leaq 32(%r12), %rax #, D.44931
cmpq %r10, %rax # D.44931, D.44931
je .L836 #,
movq (%r12), %rax # MEM[(const long unsigned int *)page_8], D.44922
testb $64, %al #, D.44922
jne .L823 #,
.L826:
movq 24(%r12), %rdx # page_8->D.11432.D.11431.counters, counters
movq 16(%r12), %r8 # page_8->D.11432.D.11414.freelist, object
movq %rdx, 64(%rsp) # counters, new.D.11432.D.11431.counters
movw 66(%rsp), %di # new, new
movzwl 64(%rsp), %eax # new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44926
andl $32767, %edi #, objects
subl %eax, %edi # D.44926, objects
testq %r15, %r15 # object
je .L824 #,
movq %r8, %rbx # object, object
jmp .L825 #
.L823:
movl 20(%rsp), %edi # %sfp,
movq %r10, (%rsp) # D.44931, %sfp
movq %rsi, 8(%rsp) # ISRA.1381, %sfp
movq %r11, 24(%rsp) # n, %sfp
movl %r9d, 32(%rsp) # available, %sfp
call gfp_pfmemalloc_allowed #
movl 32(%rsp), %r9d # %sfp, available
testb %al, %al # D.44924
movq 24(%rsp), %r11 # %sfp, n
movq 8(%rsp), %rsi # %sfp, ISRA.1381
movq (%rsp), %r10 # %sfp, D.44931
je .L827 #,
jmp .L826 #
.L824:
movw 26(%r12), %ax # *page_8, D.44925
xorl %ebx, %ebx # object
andw $32767, %ax #, D.44925
movw %ax, 64(%rsp) # D.44925, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
.L825:
orb $-128, 67(%rsp) #,
testb $64, 11(%r13) #, MEM[(struct kmem_cache *)s_29(D) + 8B]
movq 64(%rsp), %rcx # new.D.11432.D.11431.counters, D.44922
je .L855 #,
movq %r8, %rax # object, object
#APP
# 384 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%r12); sete %al #, page_8->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
jne .L829 #,
jmp .L830 #
.L833:
.L842:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r12), %rax # MEM[(const long unsigned int *)page_8], D.44922
testb $1, %al #, D.44922
jne .L842 #,
.L855:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r12); jc .L833 #, MEM[(volatile long unsigned int *)_35],
# 0 "" 2
#NO_APP
cmpq 16(%r12), %r8 # page_8->D.11432.D.11414.freelist, object
jne .L834 #,
cmpq 24(%r12), %rdx # page_8->D.11432.D.11431.counters, counters
jne .L834 #,
movq %rcx, 128(%rsp) # D.44922, tmp.D.11432.D.11431.counters
movb 131(%rsp), %dl # tmp, tmp159
movq %rbx, 16(%r12) # object, page_8->D.11432.D.11414.freelist
movb 27(%r12), %al #, tmp162
andl $-128, %edx #, tmp159
andl $127, %eax #, tmp162
orl %edx, %eax # tmp159, tmp162
movb %al, 27(%r12) # tmp162,
movl 128(%rsp), %eax # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw 130(%rsp), %dx # tmp, D.44925
movw %ax, 24(%r12) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_8->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw 26(%r12), %ax #, tmp174
andw $32767, %dx #, D.44925
andw $-32768, %ax #, tmp174
orl %edx, %eax # D.44925, tmp174
movw %ax, 26(%r12) # tmp174,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_35]
# 0 "" 2
#NO_APP
jmp .L829 #
.L834:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_35]
# 0 "" 2
#NO_APP
.L830:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
jmp .L836 #
.L829:
movq 40(%r12), %rax # MEM[(struct list_head *)page_8 + 32B].prev, D.44931
movq 32(%r12), %rdx # MEM[(struct list_head *)page_8 + 32B].next, D.44931
movq %rax, 8(%rdx) # D.44931, _48->prev
movq %rdx, (%rax) # D.44931, _49->next
movabsq $-2401263026317557504, %rax #, tmp248
movq %rax, 32(%r12) # tmp248, MEM[(struct list_head *)page_8 + 32B].next
movabsq $-2401263026316508672, %rax #, tmp249
movq %rax, 40(%r12) # tmp249, MEM[(struct list_head *)page_8 + 32B].prev
decq 8(%r11) # MEM[(long unsigned int *)n_1(D) + 8B]
testq %r8, %r8 # object
je .L856 #,
addl %edi, %r9d # objects, available
testq %r15, %r15 # object
jne .L848 #,
movq %r12, (%rsi) # page, *ISRA.1381_126(D)
movq %r8, %r15 # object, object
.L838:
testq $2166016, 8(%r13) #, MEM[(struct kmem_cache *)s_29(D) + 8B]
jne .L836 #,
movl 36(%r13), %eax # s_29(D)->cpu_partial, s_29(D)->cpu_partial
movl $2, %ecx #, tmp194
cltd
idivl %ecx # tmp194
cmpl %eax, %r9d # D.44926, available
jg .L836 #,
.L827:
movq 32(%r14), %rax # page_67->D.11444.lru.next, __mptr
movq %r14, %r12 # page, page
leaq -32(%rax), %r14 #, page
jmp .L822 #
.L856:
movl $1602, %esi #,
movq $.LC2, %rdi #,
movq %r11, 32(%rsp) # n, %sfp
call warn_slowpath_null #
movq 32(%rsp), %r11 # %sfp, n
.L836:
#APP
# 160 "./arch/x86/include/asm/spinlock.h" 1
addb $1, (%r11) #, MEM[(struct arch_spinlock_t *)_3].D.5358.tickets.head
# 0 "" 2
#NO_APP
movq %r15, %rax # object, D.44929
jmp .L849 #
.L845:
xorl %eax, %eax # D.44929
jmp .L849 #
.L846:
xorl %edi, %edi # pobjects
xorl %ecx, %ecx # pages
.L839:
movw 26(%r12), %ax # *page_8, *page_8
incl %ecx # tmp186
movq %rdx, 32(%r12) # pco_old__, page_8->D.11444.D.11439.next
movzwl 24(%r12), %r8d # page_8->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.44926
movl %ecx, 40(%r12) # tmp186, page_8->D.11444.D.11439.pages
andl $32767, %eax #, D.44926
subl %r8d, %eax # D.44926, D.44926
addl %edi, %eax # pobjects, pobjects
movl %eax, 44(%r12) # pobjects, page_8->D.11444.D.11439.pobjects
movq %rdx, %rax # pco_old__, pscr2_ret__
movq 0(%r13), %rcx # s_29(D)->cpu_slab, D.44932
#APP
# 2065 "mm/slub.c" 1
cmpxchgq %r12, %gs:24(%rcx) # page, _148->partial
# 0 "" 2
#NO_APP
cmpq %rax, %rdx # pscr2_ret__, pco_old__
je .L838 #,
.L848:
movq 0(%r13), %rax # s_29(D)->cpu_slab, s_29(D)->cpu_slab
#APP
# 2037 "mm/slub.c" 1
movq %gs:24(%rax),%rdx # _127->partial, pco_old__
# 0 "" 2
#NO_APP
testq %rdx, %rdx # pco_old__
je .L846 #,
movl 44(%rdx), %edi # pco_old___128->D.11444.D.11439.pobjects, pobjects
movl 40(%rdx), %ecx # pco_old___128->D.11444.D.11439.pages, pages
jmp .L839 #
.L849:
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size get_partial_node.isra.60, .-get_partial_node.isra.60
.text
.p2align 4,,15
.type rcu_free_slab, @function
rcu_free_slab:
pushq %rbp #
leaq -32(%rdi), %rsi #, page
movq 16(%rdi), %rdi # MEM[(struct page *)h_1(D) + -32B].D.11450.slab_cache, MEM[(struct page *)h_1(D) + -32B].D.11450.slab_cache
movq %rsp, %rbp #,
call __free_slab #
popq %rbp #
ret
.size rcu_free_slab, .-rcu_free_slab
.section .rodata.str1.1
.LC53:
.string "alloc"
.LC54:
.string "Marking all objects used"
.LC55:
.string "Freelist Pointer check fails"
.section .text.unlikely
.type alloc_debug_processing, @function
alloc_debug_processing:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
movq %rcx, %r14 # addr, addr
pushq %r13 #
movq %rdx, %r13 # object, object
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rbx # page, page
call check_slab #
testl %eax, %eax # D.44947
je .L867 #,
testq %r13, %r13 # object
je .L861 #,
movq (%rbx), %rax # MEM[(const struct page *)page_7(D)], D.44948
shrq $45, %rax #, D.44948
movq %rax, %rdx # D.44948, D.44948
shrq $7, %rdx #, D.44948
movq mem_section(,%rdx,8), %rdx # mem_section, D.44951
testq %rdx, %rdx # D.44951
je .L862 #,
andl $127, %eax #, D.44948
salq $5, %rax #, D.44948
addq %rax, %rdx # D.44948, D.44951
.L862:
movq (%rdx), %rax # MEM[(struct mem_section *)_37], map
movq %rbx, %rcx # page, D.44953
movabsq $-131941395333120, %rdx #, tmp123
andq $-4, %rax #, map
subq %rax, %rcx # map, D.44953
movq %rcx, %rax # D.44953, D.44953
sarq $6, %rax #, D.44953
salq $12, %rax #, D.44953
addq %rdx, %rax # tmp123, D.44948
cmpq %rax, %r13 # D.44948, object
jb .L863 #,
movw 26(%rbx), %dx # *page_7(D), *page_7(D)
movslq 24(%r12), %rcx # MEM[(int *)s_6(D) + 24B],
andl $32767, %edx #, D.44947
imull %ecx, %edx # D.44947, D.44947
movslq %edx, %rdx # D.44947, D.44955
addq %rax, %rdx # D.44948, D.44956
cmpq %rdx, %r13 # D.44956, object
jae .L863 #,
movq %r13, %rdi # object, D.44952
subq %rax, %rdi # D.44948, D.44952
movq %rdi, %rax # D.44952, D.44952
cqto
idivq %rcx # D.44952
testq %rdx, %rdx # D.44952
je .L861 #,
.L863:
movq $.LC55, %rdx #,
movq $.LC34, %rsi #,
xorl %eax, %eax #
movq %r12, %rdi # s,
call slab_bug #
movq %r13, %rdx # object,
movq %rbx, %rsi # page,
movq %r12, %rdi # s,
call print_trailer #
.L867:
movq (%rbx), %rax # MEM[(const long unsigned int *)page_7(D)], D.44948
xorl %r13d, %r13d # D.44947
testb $-128, %al #, D.44948
je .L882 #,
xorl %eax, %eax #
movq $.LC54, %rsi #,
movq %r12, %rdi # s,
call slab_fix #
movw 26(%rbx), %ax # *page_7(D), D.44949
movq $0, 16(%rbx) #, page_7(D)->D.11432.D.11414.freelist
andw $32767, %ax #, D.44949
movw %ax, 24(%rbx) # D.44949, page_7(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
jmp .L882 #
.L861:
movl $187, %ecx #,
movq %r13, %rdx # object,
movq %rbx, %rsi # page,
movq %r12, %rdi # s,
call check_object #
testl %eax, %eax # D.44947
je .L867 #,
testb $1, 10(%r12) #, s_6(D)->flags
je .L864 #,
movq %r14, %rcx # addr,
xorl %edx, %edx #
movq %r13, %rsi # object,
movq %r12, %rdi # s,
call set_track #
.L864:
testb $32, 10(%r12) #, s_6(D)->flags
je .L865 #,
movq 96(%r12), %rsi # s_6(D)->name, s_6(D)->name
movq %r13, %rcx # object,
movq $.LC53, %rdx #,
movq 16(%rbx), %r9 # page_7(D)->D.11432.D.11414.freelist,
movq $.LC50, %rdi #,
xorl %eax, %eax #
movzwl 24(%rbx), %r8d # page_7(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse,
call printk #
call dump_stack #
.L865:
movq %r13, %rsi # object,
movl $204, %edx #,
movq %r12, %rdi # s,
call init_object #
movl $1, %r13d #, D.44947
.L882:
popq %rbx #
movl %r13d, %eax # D.44947,
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.size alloc_debug_processing, .-alloc_debug_processing
.text
.p2align 4,,15
.type deactivate_slab, @function
deactivate_slab:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
movq %rdi, %r13 # s, s
pushq %r12 #
movq %rsi, %r12 # page, page
pushq %rbx #
movq %rdx, %rbx # freelist, freelist
andq $-16, %rsp #,
subq $176, %rsp #,
movq (%rsi), %rax # MEM[(const struct page *)page_17(D)], D.44970
shrq $39, %rax #, D.44970
andl $63, %eax #, D.44970
movq 192(%rdi,%rax,8), %r15 # s_19(D)->node, D.44972
movq 16(%rsi), %rax # page_17(D)->D.11432.D.11414.freelist, D.44976
cmpq $1, %rax #, D.44976
sbbl %edi, %edi # tail
xorl %r14d, %r14d # freelist
movl %edi, 44(%rsp) # tail, %sfp
addl $16, 44(%rsp) #, %sfp
testq %rdx, %rdx # freelist
je .L895 #,
movslq 32(%r13), %rcx # MEM[(struct kmem_cache *)s_19(D) + 32B], D.44973
movq (%rdx,%rcx), %r14 # *_219, freelist
testq %r14, %r14 # freelist
jne .L903 #,
jmp .L965 #
.p2align 4,,10
.p2align 3
.L951:
#APP
# 384 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%r12); sete %al #, page_17(D)->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
jne .L897 #,
.L898:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq 16(%r12), %rax # page_17(D)->D.11432.D.11414.freelist, D.44976
movslq 32(%r13), %rcx # MEM[(struct kmem_cache *)s_19(D) + 32B], D.44973
.L903:
movq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, counters
movq %rax, (%rbx,%rcx) # D.44976, *_69
movq %rdx, 72(%rsp) # counters, new.D.11432.D.11431.counters
subw $1, 72(%rsp) #, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
testb $64, 11(%r13) #, MEM[(struct kmem_cache *)s_19(D) + 8B]
movq 72(%rsp), %rcx # new.D.11432.D.11431.counters, D.44969
jne .L951 #,
.L946:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r12); jc .L901 #, MEM[(volatile long unsigned int *)_73],
# 0 "" 2
#NO_APP
cmpq %rax, 16(%r12) # D.44976, page_17(D)->D.11432.D.11414.freelist
je .L952 #,
.L902:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_73]
# 0 "" 2
#NO_APP
jmp .L898 #
.p2align 4,,10
.p2align 3
.L901:
.L927:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r12), %rsi # MEM[(const long unsigned int *)page_17(D)], D.44969
andl $1, %esi #, D.44969
jne .L927 #,
jmp .L946 #
.p2align 4,,10
.p2align 3
.L952:
cmpq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, counters
jne .L902 #,
movzbl 27(%r12), %eax #, tmp167
movq %rcx, 136(%rsp) # D.44969, tmp.D.11432.D.11431.counters
shrl $24, %ecx #, tmp
andl $-128, %ecx #, tmp164
movzwl 138(%rsp), %edx # tmp, D.44978
movq %rbx, 16(%r12) # freelist, page_17(D)->D.11432.D.11414.freelist
andl $127, %eax #, tmp167
orl %ecx, %eax # tmp164, tmp167
andw $32767, %dx #, D.44978
movb %al, 27(%r12) # tmp167,
movzwl 136(%rsp), %eax # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw %ax, 24(%r12) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_17(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movzwl 26(%r12), %eax #, tmp179
andw $-32768, %ax #, tmp179
orl %edx, %eax # D.44978, tmp179
movw %ax, 26(%r12) # tmp179,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_227]
# 0 "" 2
.p2align 4,,10
.p2align 3
#NO_APP
.L897:
testq %r14, %r14 # freelist
je .L953 #,
movslq 32(%r13), %rcx # MEM[(struct kmem_cache *)s_19(D) + 32B], D.44973
movq 16(%r12), %rax # page_17(D)->D.11432.D.11414.freelist, D.44976
movq (%r14,%rcx), %rdx # *_87, freelist
testq %rdx, %rdx # freelist
je .L895 #,
movq %r14, %rbx # freelist, freelist
movq %rdx, %r14 # freelist, freelist
jmp .L903 #
.L965:
movq %rdx, %r14 # freelist, freelist
.L895:
leaq 48(%r15), %rsi #, tmp231
movq %r15, %r8 # D.44972, D.44972
xorl %ecx, %ecx # l
movq %rsi, (%rsp) # tmp231, %sfp
leaq 16(%r15), %rsi #, tmp232
xorl %edi, %edi # lock
leaq 32(%r12), %r9 #, D.44980
movq %r13, %r15 # s, s
movq %rsi, 8(%rsp) # tmp232, %sfp
movq %r14, %r13 # freelist, freelist
movq %rax, %r14 # freelist, freelist
jmp .L925 #
.p2align 4,,10
.p2align 3
.L959:
movq %r14, %rax # freelist, freelist
#APP
# 384 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%r12); sete %al #, page_17(D)->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
jne .L954 #,
.L920:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq 16(%r12), %r14 # page_17(D)->D.11432.D.11414.freelist, freelist
movl %esi, %ecx # l, l
.L925:
movq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, D.44969
testq %r13, %r13 # freelist
movq %r14, %rbx # freelist, freelist
movq %rdx, 72(%rsp) # D.44969, new.D.11432.D.11431.counters
movzwl 72(%rsp), %eax # new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp281
je .L907 #,
movslq 32(%r15), %rsi # MEM[(struct kmem_cache *)s_19(D) + 32B], D.44973
subl $1, %eax #, D.44971
movq %r13, %rbx # freelist, freelist
movw %ax, 72(%rsp) # D.44971, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movq %r14, 0(%r13,%rsi) # freelist, *_90
.L907:
andb $127, 75(%rsp) #,
testw %ax, %ax # D.44971
jne .L908 #,
movq 16(%r15), %rax # s_19(D)->min_partial, tmp282
movl $3, %esi #, l
cmpq %rax, 8(%r8) # tmp282, _67->nr_partial
jae .L909 #,
.L908:
testq %rbx, %rbx # freelist
je .L910 #,
testl %edi, %edi # lock
je .L955 #,
movl $1, %esi #, l
movl $1, %edi #, lock
.L909:
cmpl %esi, %ecx # l, l
je .L948 #,
cmpl $1, %ecx #, l
je .L956 #,
cmpl $2, %ecx #, l
je .L957 #,
.L914:
cmpl $1, %esi #, l
.p2align 4,,2
je .L958 #,
cmpl $2, %esi #, l
movq 8(%r15), %rax # MEM[(struct kmem_cache *)s_19(D) + 8B], D.44969
je .L917 #,
.L912:
testl $1073741824, %eax #, D.44969
movq 72(%rsp), %rcx # new.D.11432.D.11431.counters, D.44969
jne .L959 #,
.L949:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r12); jc .L923 #, MEM[(volatile long unsigned int *)_119],
# 0 "" 2
#NO_APP
cmpq %r14, 16(%r12) # freelist, page_17(D)->D.11432.D.11414.freelist
je .L960 #,
.L924:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_119]
# 0 "" 2
#NO_APP
jmp .L920 #
.p2align 4,,10
.p2align 3
.L917:
testl $65536, %eax #, D.44969
je .L912 #,
movq 48(%r8), %rax # MEM[(struct list_head *)_67 + 48B].next, D.44980
movq %r9, 8(%rax) # D.44980, _114->prev
movq %rax, 32(%r12) # D.44980, MEM[(struct list_head *)page_17(D) + 32B].next
movq (%rsp), %rax # %sfp, tmp231
movq %rax, 40(%r12) # tmp231, MEM[(struct list_head *)page_17(D) + 32B].prev
movq %r9, 48(%r8) # D.44980, MEM[(struct list_head *)_67 + 48B].next
.L948:
movq 8(%r15), %rax # MEM[(struct kmem_cache *)s_19(D) + 8B], D.44969
jmp .L912 #
.p2align 4,,10
.p2align 3
.L923:
.L929:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r12), %rax # MEM[(const long unsigned int *)page_17(D)], D.44969
testb $1, %al #, D.44969
jne .L929 #,
jmp .L949 #
.p2align 4,,10
.p2align 3
.L958:
addq $1, 8(%r8) #, _67->nr_partial
cmpl $16, 44(%rsp) #, %sfp
je .L961 #,
movq 16(%r8), %rax # MEM[(struct list_head *)_67 + 16B].next, D.44980
movq %r9, 8(%rax) # D.44980, _110->prev
movq %rax, 32(%r12) # D.44980, MEM[(struct list_head *)page_17(D) + 32B].next
movq 8(%rsp), %rax # %sfp, tmp232
movq %rax, 40(%r12) # tmp232, MEM[(struct list_head *)page_17(D) + 32B].prev
movq %r9, 16(%r8) # D.44980, MEM[(struct list_head *)_67 + 16B].next
movq 8(%r15), %rax # MEM[(struct kmem_cache *)s_19(D) + 8B], D.44969
jmp .L912 #
.p2align 4,,10
.p2align 3
.L956:
movq 40(%r12), %rax # MEM[(struct list_head *)page_17(D) + 32B].prev, D.44980
movq 32(%r12), %rcx # MEM[(struct list_head *)page_17(D) + 32B].next, D.44980
movq %rax, 8(%rcx) # D.44980, _98->prev
movq %rcx, (%rax) # D.44980, _99->next
movabsq $-2401263026317557504, %rax #, tmp283
movq %rax, 32(%r12) # tmp283, MEM[(struct list_head *)page_17(D) + 32B].next
movabsq $-2401263026316508672, %rax #, tmp284
movq %rax, 40(%r12) # tmp284, MEM[(struct list_head *)page_17(D) + 32B].prev
subq $1, 8(%r8) #, MEM[(long unsigned int *)_67 + 8B]
jmp .L914 #
.p2align 4,,10
.p2align 3
.L955:
movq %r8, %rdi # D.44972,
movq %r9, 16(%rsp) # D.44980, %sfp
movl %ecx, 40(%rsp) # l, %sfp
movq %rdx, 24(%rsp) # D.44969, %sfp
movq %r8, 32(%rsp) # D.44972, %sfp
call _raw_spin_lock #
movl $1, %esi #, l
.L947:
movl $1, %edi #, lock
movq 32(%rsp), %r8 # %sfp, D.44972
movq 24(%rsp), %rdx # %sfp, D.44969
movl 40(%rsp), %ecx # %sfp, l
movq 16(%rsp), %r9 # %sfp, D.44980
jmp .L909 #
.p2align 4,,10
.p2align 3
.L957:
testb $1, 10(%r15) #, MEM[(struct kmem_cache *)s_19(D) + 8B]
je .L914 #,
movq 40(%r12), %rax # MEM[(struct list_head *)page_17(D) + 32B].prev, D.44980
movq 32(%r12), %rcx # MEM[(struct list_head *)page_17(D) + 32B].next, D.44980
movq %rax, 8(%rcx) # D.44980, _206->prev
movq %rcx, (%rax) # D.44980, _207->next
movabsq $-2401263026317557504, %rax #, tmp285
movq %rax, 32(%r12) # tmp285, MEM[(struct list_head *)page_17(D) + 32B].next
movabsq $-2401263026316508672, %rax #, tmp286
movq %rax, 40(%r12) # tmp286, MEM[(struct list_head *)page_17(D) + 32B].prev
jmp .L914 #
.p2align 4,,10
.p2align 3
.L910:
testq $2166016, 8(%r15) #, MEM[(struct kmem_cache *)s_19(D) + 8B]
jne .L962 #,
movl $2, %esi #, l
jmp .L909 #
.L960:
cmpq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, D.44969
jne .L924 #,
movl %ecx, %eax # D.44969, tmp291
movq %rcx, 136(%rsp) # D.44969, tmp.D.11432.D.11431.counters
movq %r15, %r13 # s, s
shrl $24, %eax #, tmp291
movq %r8, %r15 # D.44972, D.44972
movq %rbx, 16(%r12) # freelist, page_17(D)->D.11432.D.11414.freelist
movl %eax, %edx # tmp291, tmp
movzbl 27(%r12), %eax #, tmp216
andl $-128, %edx #, tmp213
andl $127, %eax #, tmp216
orl %edx, %eax # tmp213, tmp216
movzwl 138(%rsp), %edx # tmp, D.44978
movb %al, 27(%r12) # tmp216,
movzwl 136(%rsp), %eax # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
andw $32767, %dx #, D.44978
movw %ax, 24(%r12) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_17(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movzwl 26(%r12), %eax #, tmp228
andw $-32768, %ax #, tmp228
orl %edx, %eax # D.44978, tmp228
movw %ax, 26(%r12) # tmp228,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_228]
# 0 "" 2
#NO_APP
jmp .L919 #
.L961:
movq 24(%r8), %rax # MEM[(struct list_head *)_67 + 16B].prev, D.44980
movq %r9, 24(%r8) # D.44980, MEM[(struct list_head *)_67 + 16B].prev
movq 8(%rsp), %rcx # %sfp, tmp232
movq %rax, 40(%r12) # D.44980, MEM[(struct list_head *)page_17(D) + 32B].prev
movq %rcx, 32(%r12) # tmp232, MEM[(struct list_head *)page_17(D) + 32B].next
movq %r9, (%rax) # D.44980, _107->next
movq 8(%r15), %rax # MEM[(struct kmem_cache *)s_19(D) + 8B], D.44969
jmp .L912 #
.L954:
movq %r15, %r13 # s, s
movq %r8, %r15 # D.44972, D.44972
.L919:
testl %edi, %edi # lock
jne .L930 #,
cmpl $3, %esi #, l
je .L963 #,
.L892:
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L930:
#APP
# 160 "./arch/x86/include/asm/spinlock.h" 1
addb $1, (%r15) #, _132->D.5358.tickets.head
# 0 "" 2
#NO_APP
cmpl $3, %esi #, l
jne .L892 #,
.L963:
movq %r12, %rsi # page,
movq %r13, %rdi # s,
call discard_slab #
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L953:
movq 16(%r12), %rax # page_17(D)->D.11432.D.11414.freelist, D.44976
jmp .L895 #
.L962:
testl %edi, %edi # lock
je .L964 #,
movl $2, %esi #, l
movl $1, %edi #, lock
jmp .L909 #
.L964:
movq %r8, %rdi # D.44972,
movq %r9, 16(%rsp) # D.44980, %sfp
movl %ecx, 40(%rsp) # l, %sfp
movq %rdx, 24(%rsp) # D.44969, %sfp
movq %r8, 32(%rsp) # D.44972, %sfp
call _raw_spin_lock #
movl $2, %esi #, l
jmp .L947 #
.size deactivate_slab, .-deactivate_slab
.p2align 4,,15
.type flush_cpu_slab, @function
flush_cpu_slab:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # d, d
#APP
# 2101 "mm/slub.c" 1
movl %gs:cpu_number,%eax # cpu_number, pscr_ret__
# 0 "" 2
#NO_APP
pushq %rbx #
cltq
movq (%rdi), %rbx # MEM[(struct kmem_cache *)d_1(D)].cpu_slab, __ptr
addq __per_cpu_offset(,%rax,8), %rbx # __per_cpu_offset, D.44989
je .L966 #,
movq 16(%rbx), %rsi # _9->page, D.44991
testq %rsi, %rsi # D.44991
je .L968 #,
movq (%rbx), %rdx # _9->freelist,
call deactivate_slab #
movq $0, 16(%rbx) #, _9->page
addq $1, 8(%rbx) #, _9->tid
movq $0, (%rbx) #, _9->freelist
.L968:
leaq 24(%rbx), %rsi #, D.44993
movq %r12, %rdi # d,
call unfreeze_partials.isra.59 #
.L966:
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size flush_cpu_slab, .-flush_cpu_slab
.section .text.unlikely
.type __slab_alloc, @function
__slab_alloc:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rdi, %r15 # s, s
pushq %r14 #
movq %r8, %r14 # c, c
pushq %r13 #
movl %edx, %r13d # node, node
pushq %r12 #
pushq %rbx #
andq $-16, %rsp #,
subq $208, %rsp #,
movl %esi, 68(%rsp) # gfpflags, %sfp
movq %rcx, 56(%rsp) # addr, %sfp
#APP
# 20 "./arch/x86/include/asm/irqflags.h" 1
# __raw_save_flags
pushf ; pop 72(%rsp) # %sfp
# 0 "" 2
# 39 "./arch/x86/include/asm/irqflags.h" 1
cli
# 0 "" 2
#NO_APP
movq 16(%r8), %rsi # c_205(D)->page, page
testq %rsi, %rsi # page
je .L977 #,
.L978:
cmpl $-1, %r13d #, node
je .L979 #,
movq (%rsi), %rax # MEM[(const struct page *)page_2], D.45027
shrq $39, %rax #, D.45027
andl $63, %eax #, D.45031
cmpl %eax, %r13d # D.45031, node
jne .L980 #,
.L979:
movq (%rsi), %rax # MEM[(const long unsigned int *)page_2], D.45027
testb $64, %al #, D.45027
je .L981 #,
movl 68(%rsp), %edi # %sfp,
movq %rsi, 48(%rsp) # page, %sfp
call gfp_pfmemalloc_allowed #
movq 48(%rsp), %rsi # %sfp, page
testb %al, %al # D.45034
je .L980 #,
.L981:
movq (%r14), %r12 # c_193->freelist, freelist
testq %r12, %r12 # freelist
jne .L982 #,
xorl %ebx, %ebx # tmp283
.L990:
movq 24(%rsi), %rdx # page_2->D.11432.D.11431.counters, counters
movq 16(%rsi), %r12 # page_2->D.11432.D.11414.freelist, freelist
movw 26(%rsi), %ax # *page_2, D.45033
movq %rdx, 104(%rsp) # counters, new.D.11432.D.11431.counters
movb 107(%rsp), %cl #, tmp194
andw $32767, %ax #, D.45033
testq %r12, %r12 # freelist
movw %ax, 104(%rsp) # D.45033, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
setne %al #, tmp191
sall $7, %eax #, tmp191
andl $127, %ecx #, tmp194
orl %eax, %ecx # tmp191, tmp194
testb $64, 11(%r15) #, MEM[(struct kmem_cache *)s_22(D) + 8B]
movb %cl, 107(%rsp) # tmp194,
movq 104(%rsp), %rcx # new.D.11432.D.11431.counters, D.45027
je .L1052 #,
movq %r12, %rax # freelist, freelist
#APP
# 384 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%rsi); sete %al #, page_2->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
je .L985 #,
.L984:
testq %r12, %r12 # freelist
jne .L982 #,
movq $0, 16(%r14) #, c_193->page
.L977:
movl 68(%rsp), %eax # %sfp, gfpflags
movl $20054306, %ebx #, high_zoneidx
movl %r13d, 48(%rsp) # node, %sfp
movl %eax, %ecx # gfpflags, bit
shrl $18, %eax #, tmp292
andl $1, %eax #, D.45028
andl $15, %ecx #, bit
imulq $4672, %rax, %rax #, D.45028, tmp295
addl %ecx, %ecx # D.45031
sarl %cl, %ebx # D.45031, high_zoneidx
andl $3, %ebx #, high_zoneidx
movq %rax, 32(%rsp) # tmp295, %sfp
.L1020:
movq 24(%r14), %rsi # c_202->partial, page
testq %rsi, %rsi # page
je .L993 #,
movq %rsi, 16(%r14) # page, c_130->page
movl 48(%rsp), %r13d # %sfp, node
movq 32(%rsi), %rax # page_267->D.11444.D.11439.next, D.45030
movq $0, (%r14) #, c_130->freelist
movq %rax, 24(%r14) # D.45030, c_130->partial
jmp .L978 #
.L993:
movl 48(%rsp), %edi # %sfp, node
movl %edi, %eax # node, node
incl %edi # node
jne .L994 #,
#APP
# 77 "include/linux/topology.h" 1
movl %gs:numa_node,%eax # numa_node, node
# 0 "" 2
#NO_APP
.L994:
movl 68(%rsp), %ecx # %sfp,
leaq 16(%r14), %rdi #, D.45040
cltq
movq 192(%r15,%rax,8), %rsi # s_22(D)->node, tmp234
movq %rdi, 40(%rsp) # D.45040, %sfp
movq %rdi, %rdx # D.45040,
movq %r15, %rdi # s,
call get_partial_node.isra.60 #
testq %rax, %rax # freelist
movq %rax, %r12 #, freelist
jne .L995 #,
cmpl $-1, 48(%rsp) #, %sfp
jne .L995 #,
movslq 184(%r15), %rcx # s_22(D)->remote_node_defrag_ratio,
testl %ecx, %ecx # D.45031
je .L1039 #,
#APP
# 117 "./arch/x86/include/asm/msr.h" 1
rdtsc
# 0 "" 2
#NO_APP
andl $1023, %eax #, D.45041
cmpq %rcx, %rax # D.45041, D.45041
ja .L1039 #,
movq 32(%rsp), %rdi # %sfp, tmp295
movq %r14, (%rsp) # c, %sfp
movl 68(%rsp), %r12d # %sfp, gfpflags
#APP
# 14 "./arch/x86/include/asm/current.h" 1
movq %gs:current_task,%rax #, pfo_ret__
# 0 "" 2
#NO_APP
movq %rax, 24(%rsp) # pfo_ret__, %sfp
addq $7168, %rdi #, tmp290
movq %rax, 8(%rsp) # pfo_ret__, %sfp
movq %rdi, 16(%rsp) # tmp290, %sfp
.L1000:
movq 24(%rsp), %rax # %sfp, pfo_ret__
movl 1688(%rax), %eax # MEM[(const struct seqcount_t *)pfo_ret___231 + 1688B].sequence, cpuset_mems_cookie
testb $1, %al #, cpuset_mems_cookie
movl %eax, 64(%rsp) # cpuset_mems_cookie, %sfp
je .L999 #,
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
jmp .L1000 #
.L999:
call mempolicy_slab_node #
movq 16(%rsp), %rdi # %sfp, zonelist
xorl %edx, %edx #
leaq 144(%rsp), %rcx #, tmp335
cltq
movl %ebx, %esi # high_zoneidx,
addq node_data(,%rax,8), %rdi # node_data, zonelist
addq $8, %rdi #, D.45044
call next_zones_zonelist #
movq %rax, %r13 # z, z
.L1001:
movq 144(%rsp), %r8 # zone, zone.64
testq %r8, %r8 # zone.64
je .L1054 #,
movl 72(%r8), %edi # MEM[(struct zone *)zone.64_249 + 72B], D.45031
movslq %edi, %rdx # D.45031, D.45031
movq 192(%r15,%rdx,8), %r14 # s_22(D)->node, D.45039
testq %r14, %r14 # D.45039
je .L1003 #,
movl cpusets_enabled_key(%rip), %eax # MEM[(volatile int *)&cpusets_enabled_key], D.45031
incl %eax # D.45031
decl %eax # D.45031
jle .L1004 #,
movl %r12d, %esi # gfpflags,
call __cpuset_node_allowed_hardwall #
testl %eax, %eax # D.45031
je .L1003 #,
.L1004:
movq 16(%r15), %rax # s_22(D)->min_partial, tmp339
cmpq %rax, 8(%r14) # tmp339, _251->nr_partial
ja .L1055 #,
.L1003:
leaq 16(%r13), %rdi #, z
xorl %edx, %edx #
movl %ebx, %esi # high_zoneidx,
leaq 144(%rsp), %rcx #, tmp336
call next_zones_zonelist #
movq %rax, %r13 #, z
jmp .L1001 #
.L1054:
movq 8(%rsp), %rax # %sfp, pfo_ret__
movl 64(%rsp), %edi # %sfp, cpuset_mems_cookie
cmpl 1688(%rax), %edi # MEM[(const struct seqcount_t *)pfo_ret___263 + 1688B].sequence, cpuset_mems_cookie
je .L1039 #,
jmp .L1000 #
.L1055:
movq 40(%rsp), %rdx # %sfp,
movl %r12d, %ecx # gfpflags,
movq %r14, %rsi # D.45039,
movq %r15, %rdi # s,
call get_partial_node.isra.60 #
testq %rax, %rax # object
je .L1003 #,
movq (%rsp), %r14 # %sfp, c
movq %rax, %r12 # object, freelist
.L995:
testq %r12, %r12 # freelist
jne .L1008 #,
.L1039:
movl 48(%rsp), %edx # %sfp,
movq %r15, %rdi # s,
movl 68(%rsp), %esi # %sfp,
call new_slab #
testq %rax, %rax # page
jne .L1009 #,
.L1053:
movl 48(%rsp), %r13d # %sfp, node
movq %r15, %rdi # s,
movl 68(%rsp), %esi # %sfp,
movl %r13d, %edx # node,
call slab_out_of_memory #
#APP
# 31 "./arch/x86/include/asm/irqflags.h" 1
push 72(%rsp) ; popf # %sfp
# 0 "" 2
#NO_APP
xorl %eax, %eax # D.45026
jmp .L1045 #
.L1009:
movq (%r15), %rcx # s_22(D)->cpu_slab, tcp_ptr__
#APP
# 2212 "mm/slub.c" 1
add %gs:this_cpu_off, %rcx # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 16(%rcx), %rsi # c_118->page, D.45030
movq %rcx, %r14 # tcp_ptr__, c
testq %rsi, %rsi # D.45030
je .L1012 #,
movq (%rcx), %rdx # c_118->freelist,
movq %r15, %rdi # s,
movq %rax, 24(%rsp) # page, %sfp
movq %rcx, 40(%rsp) # tcp_ptr__, %sfp
call deactivate_slab #
movq 40(%rsp), %rcx # %sfp, tcp_ptr__
movq 24(%rsp), %rax # %sfp, page
incq 8(%rcx) # c_118->tid
movq $0, 16(%rcx) #, c_118->page
movq $0, (%rcx) #, c_118->freelist
.L1012:
movq 16(%rax), %r12 # page_115->D.11432.D.11414.freelist, freelist
movq $0, 16(%rax) #, page_115->D.11432.D.11414.freelist
movq %rax, 16(%rcx) # page, c_118->page
testq %r12, %r12 # freelist
je .L1053 #,
.L1008:
testq $2166016, 8(%r15) #, MEM[(struct kmem_cache *)s_22(D) + 8B]
movq 16(%r14), %r8 # c_63->page, page
je .L1014 #,
.L1017:
testq $2166016, 8(%r15) #, MEM[(struct kmem_cache *)s_22(D) + 8B]
je .L1016 #,
jmp .L1056 #
.L1014:
movq (%r8), %rax # MEM[(const long unsigned int *)page_56], D.45027
testb $64, %al #, D.45027
jne .L1057 #,
.L982:
movslq 32(%r15), %rax # MEM[(struct kmem_cache *)s_22(D) + 32B], D.45037
movq (%r12,%rax), %rax # *_110, D.45026
incq 8(%r14) # c_201->tid
movq %rax, (%r14) # D.45026, c_201->freelist
jmp .L1047 #
.L1057:
movl 68(%rsp), %edi # %sfp,
movq %r8, 40(%rsp) # page, %sfp
call gfp_pfmemalloc_allowed #
movq 40(%rsp), %r8 # %sfp, page
testb %al, %al # D.45034
je .L1017 #,
jmp .L982 #
.L1056:
movq 56(%rsp), %rcx # %sfp,
movq %r8, %rsi # page,
movq %r12, %rdx # freelist,
movq %r15, %rdi # s,
movq %r8, 40(%rsp) # page, %sfp
call alloc_debug_processing #
movq 40(%rsp), %r8 # %sfp, page
testl %eax, %eax # D.45031
je .L1020 #,
.L1016:
movslq 32(%r15), %rax # MEM[(struct kmem_cache *)s_22(D) + 32B], D.45037
movq %r8, %rsi # page,
movq %r15, %rdi # s,
movq (%r12,%rax), %rdx # *_146, *_146
call deactivate_slab #
movq $0, 16(%r14) #, c_114->page
movq $0, (%r14) #, c_114->freelist
.L1047:
#APP
# 31 "./arch/x86/include/asm/irqflags.h" 1
push 72(%rsp) ; popf # %sfp
# 0 "" 2
#NO_APP
movq %r12, %rax # freelist, D.45026
jmp .L1045 #
.L980:
movq (%r14), %rdx # c_193->freelist,
movq %r15, %rdi # s,
call deactivate_slab #
movq $0, 16(%r14) #, c_193->page
movq $0, (%r14) #, c_193->freelist
jmp .L977 #
.L988:
.L1022:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%rsi), %rax # MEM[(const long unsigned int *)page_2], D.45027
testb $1, %al #, D.45027
jne .L1022 #,
.L1052:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%rsi); jc .L988 #, MEM[(volatile long unsigned int *)_96],
# 0 "" 2
#NO_APP
cmpq 16(%rsi), %r12 # page_2->D.11432.D.11414.freelist, freelist
jne .L989 #,
cmpq 24(%rsi), %rdx # page_2->D.11432.D.11431.counters, counters
jne .L989 #,
movq $0, 16(%rsi) #, page_2->D.11432.D.11414.freelist
movq %rcx, 168(%rsp) # D.45027, tmp.D.11432.D.11431.counters
movb 171(%rsp), %dl # tmp, tmp208
movb 27(%rsi), %al #, tmp211
andl $-128, %edx #, tmp208
andl $127, %eax #, tmp211
orl %edx, %eax # tmp208, tmp211
movb %al, 27(%rsi) # tmp211,
movl 168(%rsp), %eax # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw %ax, 24(%rsi) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_2->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw 26(%rsi), %ax #, tmp223
movw 170(%rsp), %dx # tmp, D.45033
andw $-32768, %ax #, tmp223
andw $32767, %dx #, D.45033
orl %edx, %eax # D.45033, tmp223
movw %ax, 26(%rsi) # tmp223,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%rsi) #, MEM[(volatile long int *)_149]
# 0 "" 2
#NO_APP
jmp .L984 #
.L989:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%rsi) #, MEM[(volatile long int *)_96]
# 0 "" 2
#NO_APP
.L985:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
jmp .L990 #
.L1045:
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size __slab_alloc, .-__slab_alloc
.text
.p2align 4,,15
.globl kmem_cache_alloc
.type kmem_cache_alloc, @function
kmem_cache_alloc:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
movl %esi, %r14d # gfpflags, gfpflags
pushq %r13 #
movq %rdi, %r13 # s, s
movq 8(%rbp), %rdi #, D.45059
pushq %r12 #
pushq %rbx #
.L1059:
movq 0(%r13), %r8 # s_5(D)->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_11->tid, __o2
movq (%r8), %r12 # c_11->freelist, ret
movq 16(%r8), %rax # c_11->page, page
testq %r12, %r12 # ret
je .L1063 #,
testq %rax, %rax # page
je .L1063 #,
movslq 32(%r13), %rax # MEM[(struct kmem_cache *)s_5(D) + 32B], D.45064
leaq 1(%rdx), %rcx #, D.45060
movq 0(%r13), %r8 # s_5(D)->cpu_slab, D.45061
movq (%r12,%rax), %rbx # *_25, D.45059
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _28->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _28->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1059 #,
movslq 32(%r13), %rax # MEM[(const struct kmem_cache *)s_5(D) + 32B], D.45064
andl $32768, %r14d #, gfpflags
prefetcht0 (%rbx,%rax) #
jne .L1065 #,
.L1069:
popq %rbx #
movq %r12, %rax # ret,
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1063:
movq %rdi, %rcx # D.45059,
movl %r14d, %esi # gfpflags,
movl $-1, %edx #,
movq %r13, %rdi # s,
call __slab_alloc #
andl $32768, %r14d #, gfpflags
movq %rax, %r12 #, ret
je .L1069 #,
testq %rax, %rax # ret
je .L1069 #,
.L1065:
movslq 28(%r13), %rdx # s_5(D)->object_size, D.45060
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1069 #
.size kmem_cache_alloc, .-kmem_cache_alloc
.p2align 4,,15
.type sysfs_slab_alias, @function
sysfs_slab_alias:
cmpl $5, slab_state(%rip) #, slab_state
pushq %rbp #
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rbx # name, name
je .L1081 #,
movq kmalloc_caches+40(%rip), %rdi # kmalloc_caches,
movl $208, %esi #,
call kmem_cache_alloc #
testq %rax, %rax # D.45084
je .L1079 #,
movq alias_list(%rip), %rdx # alias_list, alias_list
movq %r12, (%rax) # s, MEM[(struct saved_alias *)_17].s
movq %rbx, 8(%rax) # name, MEM[(struct saved_alias *)_17].name
movq %rax, alias_list(%rip) # D.45084, alias_list
movq %rdx, 16(%rax) # alias_list, MEM[(struct saved_alias *)_17].next
xorl %eax, %eax # D.45082
.L1078:
popq %rbx #
popq %r12 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1081:
movq slab_kset(%rip), %rax # slab_kset, tmp80
leaq 24(%rax), %rdi #, D.45085
call sysfs_remove_link #
movq slab_kset(%rip), %rax # slab_kset, tmp81
movq %rbx, %rdx # name,
leaq 120(%r12), %rsi #, D.45085
leaq 24(%rax), %rdi #, D.45085
call sysfs_create_link #
popq %rbx #
popq %r12 #
popq %rbp #
ret
.L1079:
movl $-12, %eax #, D.45082
jmp .L1078 #
.size sysfs_slab_alias, .-sysfs_slab_alias
.p2align 4,,15
.globl kmem_cache_alloc_node
.type kmem_cache_alloc_node, @function
kmem_cache_alloc_node:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r14 #
movl %esi, %r14d # gfpflags, gfpflags
movq 8(%rbp), %r9 #, D.45090
pushq %r13 #
movq %rdi, %r13 # s, s
pushq %r12 #
movl %edx, %edi # node, node
pushq %rbx #
.L1083:
movq 0(%r13), %r8 # s_5(D)->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_12->tid, __o2
movq (%r8), %r12 # c_12->freelist, ret
movq 16(%r8), %rax # c_12->page, page
testq %r12, %r12 # ret
je .L1087 #,
testq %rax, %rax # page
je .L1087 #,
cmpl $-1, %edi #, node
je .L1088 #,
movq (%rax), %rax # MEM[(const struct page *)page_15], D.45091
shrq $39, %rax #, D.45091
andl $63, %eax #, D.45093
cmpl %eax, %edi # D.45093, node
je .L1088 #,
.L1087:
movl %edi, %edx # node,
movl %r14d, %esi # gfpflags,
movq %r9, %rcx # D.45090,
movq %r13, %rdi # s,
call __slab_alloc #
andl $32768, %r14d #, gfpflags
movq %rax, %r12 #, ret
jne .L1102 #,
.L1094:
popq %rbx #
movq %r12, %rax # ret,
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1088:
movslq 32(%r13), %rax # MEM[(struct kmem_cache *)s_5(D) + 32B], D.45095
leaq 1(%rdx), %rcx #, D.45091
movq 0(%r13), %r8 # s_5(D)->cpu_slab, D.45092
movq (%r12,%rax), %rbx # *_30, D.45090
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _33->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _33->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1083 #,
movslq 32(%r13), %rax # MEM[(const struct kmem_cache *)s_5(D) + 32B], D.45095
andl $32768, %r14d #, gfpflags
prefetcht0 (%rbx,%rax) #
je .L1094 #,
.L1089:
movslq 28(%r13), %rdx # s_5(D)->object_size, D.45091
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1094 #
.L1102:
testq %rax, %rax # ret
jne .L1089 #,
.p2align 4,,8
jmp .L1094 #
.size kmem_cache_alloc_node, .-kmem_cache_alloc_node
.p2align 4,,15
.globl __kmalloc
.type __kmalloc, @function
__kmalloc:
pushq %rbp #
cmpq $8192, %rdi #, size
movq %rsp, %rbp #,
pushq %r14 #
movl %esi, %r14d # flags, flags
pushq %r13 #
pushq %r12 #
pushq %rbx #
ja .L1124 #,
call kmalloc_slab #
cmpq $16, %rax #, s
movq %rax, %r13 #, s
jbe .L1121 #,
movq 8(%rbp), %rdi #, D.45107
.L1106:
movq 0(%r13), %r8 # s_11->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_100->tid, __o2
movq (%r8), %r12 # c_100->freelist, ret
movq 16(%r8), %rax # c_100->page, page
testq %r12, %r12 # ret
je .L1110 #,
testq %rax, %rax # page
je .L1110 #,
movslq 32(%r13), %rax # MEM[(struct kmem_cache *)s_11 + 32B], D.45112
leaq 1(%rdx), %rcx #, D.45108
movq 0(%r13), %r8 # s_11->cpu_slab, D.45110
movq (%r12,%rax), %rbx # *_114, D.45107
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _117->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _117->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1106 #,
movslq 32(%r13), %rax # MEM[(const struct kmem_cache *)s_11 + 32B], D.45112
andl $32768, %r14d #, flags
prefetcht0 (%rbx,%rax) #
jne .L1112 #,
.L1109:
movq %r12, %rax # ret, D.45107
.L1121:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1110:
movq %rdi, %rcx # D.45107,
movl %r14d, %esi # flags,
movl $-1, %edx #,
movq %r13, %rdi # s,
call __slab_alloc #
andl $32768, %r14d #, flags
movq %rax, %r12 #, ret
je .L1109 #,
testq %rax, %rax # ret
je .L1109 #,
.L1112:
movslq 28(%r13), %rdx # s_11->object_size, D.45108
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1109 #
.L1124:
leaq -1(%rdi), %rdx #, size
orl $-1, %eax #, bitpos
shrq $12, %rdx #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %edx #, D.45109
call kmalloc_order #
jmp .L1121 #
.size __kmalloc, .-__kmalloc
.p2align 4,,15
.globl __kmalloc_node
.type __kmalloc_node, @function
__kmalloc_node:
pushq %rbp #
cmpq $8192, %rdi #, size
movq %rsp, %rbp #,
pushq %r15 #
movl %edx, %r15d # node, node
pushq %r14 #
movl %esi, %r14d # flags, flags
pushq %r13 #
pushq %r12 #
pushq %rbx #
ja .L1148 #,
call kmalloc_slab #
cmpq $16, %rax #, s
movq %rax, %r13 #, s
jbe .L1146 #,
movq 8(%rbp), %r9 #, D.45125
.L1128:
movq 0(%r13), %r8 # s_81->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_97->tid, __o2
movq (%r8), %r12 # c_97->freelist, ret
movq 16(%r8), %rax # c_97->page, page
testq %r12, %r12 # ret
je .L1132 #,
testq %rax, %rax # page
je .L1132 #,
cmpl $-1, %r15d #, node
je .L1133 #,
movq (%rax), %rax # MEM[(const struct page *)page_100], D.45126
shrq $39, %rax #, D.45126
andl $63, %eax #, D.45128
cmpl %eax, %r15d # D.45128, node
je .L1133 #,
.L1132:
movl %r14d, %esi # flags,
movq %r9, %rcx # D.45125,
movl %r15d, %edx # node,
movq %r13, %rdi # s,
call __slab_alloc #
andl $32768, %r14d #, flags
movq %rax, %r12 #, ret
jne .L1149 #,
.L1131:
movq %r12, %rax # ret, D.45125
.L1146:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1133:
movslq 32(%r13), %rax # MEM[(struct kmem_cache *)s_81 + 32B], D.45129
leaq 1(%rdx), %rcx #, D.45126
movq 0(%r13), %rdi # s_81->cpu_slab, D.45127
movq (%r12,%rax), %rbx # *_115, D.45125
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%rdi),%rsi # _118->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%rdi) # _118->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1128 #,
movslq 32(%r13), %rax # MEM[(const struct kmem_cache *)s_81 + 32B], D.45129
andl $32768, %r14d #, flags
prefetcht0 (%rbx,%rax) #
je .L1131 #,
.L1134:
movslq 28(%r13), %rdx # s_81->object_size, D.45126
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1131 #
.L1148:
call kmalloc_large_node #
.p2align 4,,8
jmp .L1146 #
.L1149:
testq %rax, %rax # ret
.p2align 4,,5
jne .L1134 #,
.p2align 4,,8
jmp .L1131 #
.size __kmalloc_node, .-__kmalloc_node
.p2align 4,,15
.type slab_cpuup_callback, @function
slab_cpuup_callback:
leaq -4(%rsi), %rcx #, D.45142
cmpq $19, %rcx #, D.45142
ja .L1173 #,
movl $1, %eax #, D.45142
salq %cl, %rax # D.45142, D.45142
testl $589833, %eax #, D.45142
jne .L1174 #,
.L1173:
movl $1, %eax #,
ret
.p2align 4,,10
.p2align 3
.L1174:
pushq %rbp #
movq $slab_mutex, %rdi #,
movq %rsp, %rbp #,
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $8, %rsp #,
movq %rdx, -40(%rbp) # hcpu, %sfp
call mutex_lock #
movq slab_caches(%rip), %rax # slab_caches.next, __mptr
movq -40(%rbp), %rdx # %sfp, hcpu
leaq -104(%rax), %r12 #, s
cmpq $slab_caches, %rax #, __mptr
movslq %edx, %r14 # hcpu, D.45147
je .L1157 #,
.p2align 4,,10
.p2align 3
.L1167:
#APP
# 20 "./arch/x86/include/asm/irqflags.h" 1
# __raw_save_flags
pushf ; pop %r13 # flags
# 0 "" 2
# 39 "./arch/x86/include/asm/irqflags.h" 1
cli
# 0 "" 2
#NO_APP
movq (%r12), %rbx # s_52->cpu_slab, __ptr
addq __per_cpu_offset(,%r14,8), %rbx # __per_cpu_offset, D.45143
je .L1153 #,
movq 16(%rbx), %rsi # _19->page, D.45144
testq %rsi, %rsi # D.45144
je .L1154 #,
movq (%rbx), %rdx # _19->freelist,
movq %r12, %rdi # s,
call deactivate_slab #
movq $0, 16(%rbx) #, _19->page
addq $1, 8(%rbx) #, _19->tid
movq $0, (%rbx) #, _19->freelist
.L1154:
leaq 24(%rbx), %rsi #, D.45146
movq %r12, %rdi # s,
call unfreeze_partials.isra.59 #
.L1153:
#APP
# 31 "./arch/x86/include/asm/irqflags.h" 1
push %r13 ; popf # flags
# 0 "" 2
#NO_APP
movq 104(%r12), %rax # s_52->list.next, __mptr
leaq -104(%rax), %r12 #, s
cmpq $slab_caches, %rax #, __mptr
jne .L1167 #,
.L1157:
movq $slab_mutex, %rdi #,
call mutex_unlock #
addq $8, %rsp #,
movl $1, %eax #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.size slab_cpuup_callback, .-slab_cpuup_callback
.section .init.text
.type bootstrap, @function
bootstrap:
pushq %rbp #
movl $32768, %esi #,
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # static_cache, static_cache
movq kmem_cache(%rip), %rdi # kmem_cache,
pushq %rbx #
call kmem_cache_alloc #
movq %r12, %rsi # static_cache, static_cache
movq %rax, %rbx #, D.45155
movq kmem_cache(%rip), %rax # kmem_cache, kmem_cache
movq %rbx, %rdi # D.45155, D.45155
movslq 28(%rax), %rcx # kmem_cache.424_11->object_size, D.45153
rep movsb
#APP
# 3597 "mm/slub.c" 1
movl %gs:cpu_number,%eax # cpu_number, pscr_ret__
# 0 "" 2
#NO_APP
cltq
movq (%rbx), %r12 # MEM[(struct kmem_cache *)_36].cpu_slab, __ptr
addq __per_cpu_offset(,%rax,8), %r12 # __per_cpu_offset, D.45156
je .L1176 #,
movq 16(%r12), %rsi # _41->page, D.45157
testq %rsi, %rsi # D.45157
je .L1177 #,
movq (%r12), %rdx # _41->freelist,
movq %rbx, %rdi # D.45155,
call deactivate_slab #
movq $0, (%r12) #, _41->freelist
incq 8(%r12) # _41->tid
movq $0, 16(%r12) #, _41->page
.L1177:
leaq 24(%r12), %rsi #, D.45159
movq %rbx, %rdi # D.45155,
call unfreeze_partials.isra.59 #
.L1176:
movl $64, %esi #,
movq $node_states+16, %rdi #,
movl $64, %r12d #, tmp129
call find_first_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.45153
cmovle %eax, %edx # D.45153,, node
.L1178:
cmpl $64, %edx #, node
je .L1194 #,
movslq %edx, %rax # node, node
movq 192(%rbx,%rax,8), %rdi # MEM[(struct kmem_cache *)_36].node, D.45160
testq %rdi, %rdi # D.45160
je .L1180 #,
movq 16(%rdi), %rax # _53->partial.next, tmp132
leaq 16(%rdi), %r8 #, D.45154
leaq -32(%rax), %rcx #, p
.L1181:
leaq 32(%rcx), %rsi #, D.45154
cmpq %r8, %rsi # D.45154, D.45154
je .L1195 #,
movq %rbx, 48(%rcx) # D.45155, p_2->D.11450.slab_cache
movq 32(%rcx), %rcx # p_2->D.11444.lru.next, __mptr
subq $32, %rcx #, p
jmp .L1181 #
.L1195:
movq 48(%rdi), %rax # _53->full.next, tmp133
addq $48, %rdi #, D.45154
leaq -32(%rax), %rcx #, p
.L1183:
leaq 32(%rcx), %rsi #, D.45154
cmpq %rdi, %rsi # D.45154, D.45154
je .L1180 #,
movq %rbx, 48(%rcx) # D.45155, p_3->D.11450.slab_cache
movq 32(%rcx), %rcx # p_3->D.11444.lru.next, __mptr
subq $32, %rcx #, p
jmp .L1183 #
.L1180:
incl %edx # D.45152
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %edx, %rdx # D.45152, D.45153
call find_next_bit #
cmpl $64, %eax #, D.45153
movl %eax, %edx # D.45153, node
cmovg %r12d, %edx # node,, tmp129, node
jmp .L1178 #
.L1194:
movq slab_caches(%rip), %rdx # slab_caches.next, D.45154
leaq 104(%rbx), %rax #, D.45154
movq %rax, slab_caches(%rip) # D.45154, slab_caches.next
movq %rax, 8(%rdx) # D.45154, _59->prev
movq %rbx, %rax # D.45155,
movq %rdx, 104(%rbx) # D.45154, MEM[(struct list_head *)_36 + 104B].next
movq $slab_caches, 112(%rbx) #, MEM[(struct list_head *)_36 + 104B].prev
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size bootstrap, .-bootstrap
.section .text.unlikely
.type __slab_free, @function
__slab_free:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
xorl %r15d, %r15d # n
pushq %r14 #
movq %rdi, %r14 # s, s
pushq %r13 #
pushq %r12 #
movq %rsi, %r12 # page, page
pushq %rbx #
movq %rdx, %rbx # x, x
andq $-16, %rsp #,
subq $152, %rsp #,
testq $2166016, 8(%rdi) #, MEM[(struct kmem_cache *)s_15(D) + 8B]
je .L1212 #,
leaq 16(%rsp), %r8 #,
call free_debug_processing #
testq %rax, %rax # n
movq %rax, %r15 #, n
je .L1196 #,
.L1212:
testq %r15, %r15 # n
je .L1199 #,
movq 16(%rsp), %rsi # flags,
movq %r15, %rdi # n,
call _raw_spin_unlock_irqrestore #
.L1199:
movq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, counters
movslq 32(%r14), %rax # MEM[(struct kmem_cache *)s_15(D) + 32B], D.45190
movq 16(%r12), %r13 # page_17(D)->D.11432.D.11414.freelist, prior
movq %rdx, 48(%rsp) # counters, new.D.11432.D.11431.counters
movq %r13, (%rbx,%rax) # prior, *_84
movb 51(%rsp), %al # new, D.45185
shrb $7, %al #, D.45185
movzbl %al, %esi # D.45185, was_frozen
movl 48(%rsp), %eax # new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp241
leal -1(%rax), %ecx #, D.45186
testw %cx, %cx # D.45186
movw %cx, 48(%rsp) # D.45186, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
je .L1200 #,
xorl %r15d, %r15d # n
testq %r13, %r13 # prior
jne .L1201 #,
.L1200:
xorl %r15d, %r15d # n
testl %esi, %esi # was_frozen
jne .L1201 #,
testq $2166016, 8(%r14) #, MEM[(struct kmem_cache *)s_15(D) + 8B]
jne .L1202 #,
testq %r13, %r13 # prior
jne .L1202 #,
orb $-128, 51(%rsp) #,
movq %r13, %r15 # prior, n
jmp .L1201 #
.L1202:
movq (%r12), %rax # MEM[(const struct page *)page_17(D)], D.45184
movl %esi, 4(%rsp) # was_frozen, %sfp
movq %rdx, 8(%rsp) # counters, %sfp
shrq $39, %rax #, D.45184
andl $63, %eax #, D.45184
movq 192(%r14,%rax,8), %r15 # s_15(D)->node, n
movq %r15, %rdi # n,
call _raw_spin_lock_irqsave #
movl 4(%rsp), %esi # %sfp, was_frozen
movq 8(%rsp), %rdx # %sfp, counters
movq %rax, 16(%rsp) # flags.177, flags
.L1201:
testb $64, 11(%r14) #, MEM[(struct kmem_cache *)s_15(D) + 8B]
movq 48(%rsp), %rcx # new.D.11432.D.11431.counters, D.45183
je .L1203 #,
movq %r13, %rax # prior, prior
#APP
# 420 "mm/slub.c" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; cmpxchg16b 16(%r12); sete %al #, page_17(D)->D.11432.D.11414.freelist, __ret
# 0 "" 2
#NO_APP
testb %al, %al # __ret
je .L1205 #,
jmp .L1204 #
.L1203:
#APP
# 20 "./arch/x86/include/asm/irqflags.h" 1
# __raw_save_flags
pushf ; pop %rax # flags
# 0 "" 2
# 39 "./arch/x86/include/asm/irqflags.h" 1
cli
# 0 "" 2
#NO_APP
.L1206:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r12); jc .L1208 #, MEM[(volatile long unsigned int *)_99],
# 0 "" 2
#NO_APP
cmpq 16(%r12), %r13 # page_17(D)->D.11432.D.11414.freelist, prior
jne .L1209 #,
cmpq 24(%r12), %rdx # page_17(D)->D.11432.D.11431.counters, counters
jne .L1209 #,
movq %rcx, 112(%rsp) # D.45183, tmp.D.11432.D.11431.counters
movb 27(%r12), %dl #, tmp188
movb 115(%rsp), %cl # tmp, tmp185
movq %rbx, 16(%r12) # x, page_17(D)->D.11432.D.11414.freelist
andl $127, %edx #, tmp188
andl $-128, %ecx #, tmp185
orl %ecx, %edx # tmp185, tmp188
movw 114(%rsp), %cx # tmp, D.45194
movb %dl, 27(%r12) # tmp188,
movl 112(%rsp), %edx # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
andw $32767, %cx #, D.45194
movw %dx, 24(%r12) # tmp.D.11432.D.11431.D.11429.D.11427.D.11425.inuse, page_17(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movw 26(%r12), %dx #, tmp200
andw $-32768, %dx #, tmp200
orl %ecx, %edx # D.45194, tmp200
movw %dx, 26(%r12) # tmp200,
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_90]
# 0 "" 2
# 31 "./arch/x86/include/asm/irqflags.h" 1
push %rax ; popf # flags
# 0 "" 2
#NO_APP
jmp .L1204 #
.L1209:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r12) #, MEM[(volatile long int *)_99]
# 0 "" 2
# 31 "./arch/x86/include/asm/irqflags.h" 1
push %rax ; popf # flags
# 0 "" 2
#NO_APP
.L1205:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
jmp .L1212 #
.L1208:
.L1224:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r12), %rdi # MEM[(const long unsigned int *)page_17(D)], D.45183
andb $1, %dil #, D.45183
jne .L1224 #,
jmp .L1206 #
.L1204:
testq %r15, %r15 # n
jne .L1255 #,
cmpb $0, 51(%rsp) #, new
jns .L1196 #,
testl %esi, %esi # was_frozen
jne .L1196 #,
.L1215:
movq (%r14), %rax # s_15(D)->cpu_slab, s_15(D)->cpu_slab
#APP
# 2037 "mm/slub.c" 1
movq %gs:24(%rax),%rcx # _179->partial, pco_old__
# 0 "" 2
#NO_APP
testq %rcx, %rcx # pco_old__
movq %rcx, %rdx # pco_old__, pco_old__
je .L1230 #,
movl 44(%rcx), %esi # pco_old___180->D.11444.D.11439.pobjects, pobjects
movl 40(%rcx), %ecx # pco_old___180->D.11444.D.11439.pages, pages
cmpl %esi, 36(%r14) # pobjects, s_15(D)->cpu_partial
jge .L1213 #,
#APP
# 20 "./arch/x86/include/asm/irqflags.h" 1
# __raw_save_flags
pushf ; pop %rbx # flags
# 0 "" 2
# 39 "./arch/x86/include/asm/irqflags.h" 1
cli
# 0 "" 2
#NO_APP
movq (%r14), %rsi # s_15(D)->cpu_slab, tcp_ptr__
#APP
# 2049 "mm/slub.c" 1
add %gs:this_cpu_off, %rsi # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
addq $24, %rsi #, D.45197
movq %r14, %rdi # s,
call unfreeze_partials.isra.59 #
#APP
# 31 "./arch/x86/include/asm/irqflags.h" 1
push %rbx ; popf # flags
# 0 "" 2
#NO_APP
xorl %esi, %esi # pobjects
xorl %ecx, %ecx # pages
xorl %edx, %edx # pco_old__
jmp .L1213 #
.L1230:
xorl %esi, %esi # pobjects
xorl %ecx, %ecx # pages
.L1213:
movw 26(%r12), %ax # *page_17(D), *page_17(D)
incl %ecx # tmp221
movq %rdx, 32(%r12) # pco_old__, page_17(D)->D.11444.D.11439.next
movzwl 24(%r12), %edi # page_17(D)->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.45184
movl %ecx, 40(%r12) # tmp221, page_17(D)->D.11444.D.11439.pages
andl $32767, %eax #, D.45184
subl %edi, %eax # D.45184, D.45184
addl %esi, %eax # pobjects, pobjects
movl %eax, 44(%r12) # pobjects, page_17(D)->D.11444.D.11439.pobjects
movq %rdx, %rax # pco_old__, pscr2_ret__
movq (%r14), %rcx # s_15(D)->cpu_slab, D.45196
#APP
# 2065 "mm/slub.c" 1
cmpxchgq %r12, %gs:24(%rcx) # page, _200->partial
# 0 "" 2
#NO_APP
cmpq %rax, %rdx # pscr2_ret__, pco_old__
jne .L1215 #,
jmp .L1196 #
.L1255:
cmpw $0, 48(%rsp) #, new.D.11432.D.11431.D.11429.D.11427.D.11425.inuse
jne .L1216 #,
movq 16(%r14), %rax # s_15(D)->min_partial, tmp243
cmpq %rax, 8(%r15) # tmp243, n_88->nr_partial
jae .L1217 #,
.L1216:
movq 8(%r14), %rax # MEM[(struct kmem_cache *)s_15(D) + 8B], D.45183
testl $2166016, %eax #, D.45183
je .L1218 #,
testq %r13, %r13 # prior
jne .L1218 #,
testl $65536, %eax #, D.45183
je .L1219 #,
movq 40(%r12), %rax # MEM[(struct list_head *)page_17(D) + 32B].prev, D.45195
movq 32(%r12), %rdx # MEM[(struct list_head *)page_17(D) + 32B].next, D.45195
movq %rax, 8(%rdx) # D.45195, _202->prev
movq %rdx, (%rax) # D.45195, _203->next
movabsq $-2401263026317557504, %rax #, tmp244
movq %rax, 32(%r12) # tmp244, MEM[(struct list_head *)page_17(D) + 32B].next
movabsq $-2401263026316508672, %rax #, tmp245
movq %rax, 40(%r12) # tmp245, MEM[(struct list_head *)page_17(D) + 32B].prev
.L1219:
movq 24(%r15), %rax # MEM[(struct list_head *)n_88 + 16B].prev, D.45195
leaq 32(%r12), %rdx #, D.45195
incq 8(%r15) # n_88->nr_partial
leaq 16(%r15), %rcx #, tmp228
movq %rdx, 24(%r15) # D.45195, MEM[(struct list_head *)n_88 + 16B].prev
movq %rcx, 32(%r12) # tmp228, MEM[(struct list_head *)page_17(D) + 32B].next
movq %rax, 40(%r12) # D.45195, MEM[(struct list_head *)page_17(D) + 32B].prev
movq %rdx, (%rax) # D.45195, _125->next
.L1218:
movq 16(%rsp), %rsi # flags,
movq %r15, %rdi # n,
call _raw_spin_unlock_irqrestore #
jmp .L1196 #
.L1217:
testq %r13, %r13 # prior
je .L1221 #,
movq 40(%r12), %rax # MEM[(struct list_head *)page_17(D) + 32B].prev, D.45195
movq 32(%r12), %rdx # MEM[(struct list_head *)page_17(D) + 32B].next, D.45195
movq %rax, 8(%rdx) # D.45195, _130->prev
movq %rdx, (%rax) # D.45195, _131->next
movabsq $-2401263026317557504, %rax #, tmp246
movq %rax, 32(%r12) # tmp246, MEM[(struct list_head *)page_17(D) + 32B].next
movabsq $-2401263026316508672, %rax #, tmp247
movq %rax, 40(%r12) # tmp247, MEM[(struct list_head *)page_17(D) + 32B].prev
decq 8(%r15) # MEM[(long unsigned int *)n_88 + 8B]
jmp .L1222 #
.L1221:
testb $1, 10(%r14) #, MEM[(struct kmem_cache *)s_15(D) + 8B]
je .L1222 #,
movq 40(%r12), %rax # MEM[(struct list_head *)page_17(D) + 32B].prev, D.45195
movq 32(%r12), %rdx # MEM[(struct list_head *)page_17(D) + 32B].next, D.45195
movq %rax, 8(%rdx) # D.45195, _204->prev
movq %rdx, (%rax) # D.45195, _205->next
movabsq $-2401263026317557504, %rax #, tmp248
movq %rax, 32(%r12) # tmp248, MEM[(struct list_head *)page_17(D) + 32B].next
movabsq $-2401263026316508672, %rax #, tmp249
movq %rax, 40(%r12) # tmp249, MEM[(struct list_head *)page_17(D) + 32B].prev
.L1222:
movq 16(%rsp), %rsi # flags,
movq %r15, %rdi # n,
call _raw_spin_unlock_irqrestore #
movq %r12, %rsi # page,
movq %r14, %rdi # s,
call discard_slab #
.L1196:
leaq -40(%rbp), %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size __slab_free, .-__slab_free
.text
.p2align 4,,15
.globl kmem_cache_free
.type kmem_cache_free, @function
kmem_cache_free:
pushq %rbp #
movq %rsp, %rbp #,
pushq %rbx #
movq %rsi, %rbx # x, x
testb $1, 9(%rdi) #, s_3(D)->flags
jne .L1286 #,
.L1257:
testq %rdi, %rdi # D.45211
je .L1256 #,
movl $2147483648, %edx #, tmp141
movq 8(%rbp), %r10 #, D.45207
movabsq $131939247849472, %rax #, iftmp.154
addq %rbx, %rdx # x, y
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rax, %rdx # iftmp.154, x
movq %rdx, %rcx # x, __pfn
movq %rdx, %rsi # x, D.45208
shrq $34, %rdx #, D.45208
movq mem_section(,%rdx,8), %rax # mem_section, D.45209
shrq $12, %rcx #, __pfn
shrq $27, %rsi #, D.45208
testq %rax, %rax # D.45209
je .L1263 #,
andl $127, %esi #, D.45208
movq %rsi, %rdx # D.45208, D.45208
salq $5, %rdx #, D.45208
addq %rdx, %rax # D.45208, D.45209
.L1263:
movq (%rax), %rax # MEM[(struct mem_section *)_63], map
salq $6, %rcx #, D.45208
andq $-4, %rax #, map
addq %rcx, %rax # D.45208, page
movq (%rax), %rdx # MEM[(const long unsigned int *)page_68], D.45208
andb $128, %dh #, D.45208
jne .L1287 #,
movq %rax, %r11 # page, D.45210
.L1265:
movq (%rdi), %r9 # _50->cpu_slab, tcp_ptr__
#APP
# 2684 "mm/slub.c" 1
add %gs:this_cpu_off, %r9 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r9), %rdx # c_85->tid, __o2
cmpq 16(%r9), %r11 # c_85->page, D.45210
jne .L1266 #,
movq (%r9), %rcx # c_85->freelist, D.45213
movslq 32(%rdi), %rax # MEM[(struct kmem_cache *)_50 + 32B], D.45215
movq %rcx, (%rbx,%rax) # D.45213, *_94
leaq 1(%rdx), %rcx #, D.45208
movq (%rdi), %r8 # _50->cpu_slab, D.45212
movq (%r9), %rax # c_85->freelist, c_85->freelist
#APP
# 2692 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _97->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _97->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1265 #,
.L1256:
popq %rbx #
popq %rbp #
ret
.L1286:
movabsq $131939247849472, %rax #, iftmp.154
movl $2147483648, %edx #, tmp128
addq %rsi, %rdx # x, y
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rdx, %rax # y, x
movq %rax, %rcx # x, __pfn
movq %rax, %rdx # x, D.45208
shrq $34, %rax #, D.45208
movq mem_section(,%rax,8), %rax # mem_section, D.45209
shrq $12, %rcx #, __pfn
shrq $27, %rdx #, D.45208
testq %rax, %rax # D.45209
je .L1259 #,
andl $127, %edx #, D.45208
salq $5, %rdx #, D.45208
addq %rdx, %rax # D.45208, D.45209
.L1259:
movq (%rax), %rax # MEM[(struct mem_section *)_29], map
salq $6, %rcx #, D.45208
andq $-4, %rax #, map
addq %rcx, %rax # D.45208, page
movq (%rax), %rdx # MEM[(const long unsigned int *)page_34], D.45208
andb $128, %dh #, D.45208
jne .L1288 #,
.L1260:
movq 48(%rax), %rdi # _48->D.11450.slab_cache, D.45211
jmp .L1257 #
.L1266:
movq %r10, %rcx # D.45207,
movq %rbx, %rdx # x,
movq %r11, %rsi # D.45210,
call __slab_free #
jmp .L1256 #
.L1287:
movq 48(%rax), %r11 # page_68->D.11450.first_page, D.45210
movq (%rax), %rdx # MEM[(const long unsigned int *)page_68], D.45208
andb $128, %dh #, D.45208
cmove %rax, %r11 # page,, D.45210
jmp .L1265 #
.L1288:
movq 48(%rax), %rdx # page_34->D.11450.first_page, head
movq (%rax), %rcx # MEM[(const long unsigned int *)page_34], D.45208
andb $128, %ch #, D.45208
cmovne %rdx, %rax # D.45210,, head, D.45210
jmp .L1260 #
.size kmem_cache_free, .-kmem_cache_free
.p2align 4,,15
.type free_kmem_cache_nodes, @function
free_kmem_cache_nodes:
pushq %rbp #
movl $64, %esi #,
movq %rsp, %rbp #,
pushq %r14 #
movq %rdi, %r14 # s, s
pushq %r13 #
movq $node_states+16, %rdi #,
movl $64, %r13d #, tmp79
pushq %r12 #
pushq %rbx #
movl $64, %ebx #, node
call find_first_bit #
cmpl $64, %eax #, D.45222
cmovle %eax, %ebx # D.45222,, node
cmpl $64, %ebx #, node
je .L1289 #,
.p2align 4,,10
.p2align 3
.L1300:
movslq %ebx, %rax # node, D.45221
leaq (%r14,%rax,8), %r12 #, D.45224
movq 192(%r12), %rsi # MEM[(struct kmem_cache *)_22 + 192B], n
testq %rsi, %rsi # n
je .L1291 #,
movq kmem_cache_node(%rip), %rdi # kmem_cache_node,
call kmem_cache_free #
.L1291:
addl $1, %ebx #, D.45223
movl $64, %esi #,
movq $node_states+16, %rdi #,
movq $0, 192(%r12) #, MEM[(struct kmem_cache *)_22 + 192B]
movslq %ebx, %rdx # D.45223, D.45222
call find_next_bit #
cmpl $64, %eax #, D.45222
movl %eax, %ebx # D.45222, node
cmovg %r13d, %ebx # node,, tmp79, node
cmpl $64, %ebx #, node
jne .L1300 #,
.L1289:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %rbp #
ret
.size free_kmem_cache_nodes, .-free_kmem_cache_nodes
.p2align 4,,15
.globl kfree
.type kfree, @function
kfree:
pushq %rbp #
cmpq $16, %rdi #, x
movq %rsp, %rbp #,
pushq %r12 #
pushq %rbx #
jbe .L1302 #,
movabsq $131939247849472, %rax #, iftmp.154
movl $2147483648, %edx #, tmp113
addq %rdi, %rdx # x, y
cmovc phys_base(%rip), %rax # phys_base,, iftmp.154
addq %rax, %rdx # iftmp.154, x
movq %rdx, %rcx # x, __pfn
movq %rdx, %rsi # x, D.45227
shrq $34, %rdx #, D.45227
movq mem_section(,%rdx,8), %rax # mem_section, D.45231
shrq $12, %rcx #, __pfn
shrq $27, %rsi #, D.45227
testq %rax, %rax # D.45231
je .L1306 #,
andl $127, %esi #, D.45227
movq %rsi, %rdx # D.45227, D.45227
salq $5, %rdx #, D.45227
addq %rdx, %rax # D.45227, D.45231
.L1306:
movq (%rax), %rax # MEM[(struct mem_section *)_37], map
salq $6, %rcx #, D.45227
andq $-4, %rax #, map
addq %rcx, %rax # D.45227, page
movq (%rax), %rdx # MEM[(const long unsigned int *)page_42], D.45227
andb $128, %dh #, D.45227
jne .L1323 #,
movq %rax, %r10 # page, D.45232
.L1307:
movq (%r10), %rax # MEM[(const long unsigned int *)_56], D.45227
testb $-128, %al #, D.45227
je .L1324 #,
movq 8(%rbp), %r12 #, D.45229
movq 48(%r10), %r11 # _56->D.11450.slab_cache, D.45230
.L1311:
movq (%r11), %r9 # _24->cpu_slab, tcp_ptr__
#APP
# 2684 "mm/slub.c" 1
add %gs:this_cpu_off, %r9 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r9), %rdx # c_72->tid, __o2
cmpq 16(%r9), %r10 # c_72->page, D.45232
jne .L1312 #,
movq (%r9), %rcx # c_72->freelist, D.45237
movq %rdi, %rbx # x, x
movslq 32(%r11), %rax # MEM[(struct kmem_cache *)_24 + 32B], D.45238
movq %rcx, (%rdi,%rax) # D.45237, *_81
leaq 1(%rdx), %rcx #, D.45227
movq (%r11), %r8 # _24->cpu_slab, D.45236
movq (%r9), %rax # c_72->freelist, c_72->freelist
#APP
# 2692 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _84->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _84->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1311 #,
.L1302:
popq %rbx #
popq %r12 #
popq %rbp #
ret
.L1323:
movq 48(%rax), %r10 # page_42->D.11450.first_page, D.45232
movq (%rax), %rdx # MEM[(const long unsigned int *)page_42], D.45227
andb $128, %dh #, D.45227
cmove %rax, %r10 # page,, D.45232
jmp .L1307 #
.L1312:
movq %rdi, %rdx # x,
movq %r12, %rcx # D.45229,
movq %r10, %rsi # D.45232,
movq %r11, %rdi # D.45230,
call __slab_free #
jmp .L1302 #
.L1324:
testq $49152, (%r10) #, MEM[(struct page *)_56]
je .L1325 #,
movq (%r10), %rax # MEM[(const long unsigned int *)_56], D.45227
xorl %esi, %esi # D.45233
testb $64, %ah #, D.45227
je .L1310 #,
movl 104(%r10), %esi # MEM[(struct page *)_56 + 64B].D.11444.lru.prev, D.45233
.L1310:
movq %r10, %rdi # D.45232,
call __free_kmem_pages #
jmp .L1302 #
.L1325:
#APP
# 3380 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 3380, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.size kfree, .-kfree
.section .rodata.str1.8
.align 8
.LC56:
.string "\0013SLUB %s: %ld partial slabs counted but counter=%ld\n"
.align 8
.LC57:
.string "\0013SLUB: %s %ld slabs counted but counter=%ld\n"
.text
.p2align 4,,15
.type validate_store, @function
validate_store:
pushq %rbp #
movq $-22, %rax #, D.45279
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $40, %rsp #,
movq %rdx, -80(%rbp) # length, %sfp
cmpb $49, (%rsi) #, *buf_4(D)
je .L1346 #,
.L1343:
addq $40, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L1346:
movzwl 48(%rdi), %eax # MEM[(struct kmem_cache *)s_6(D) + 48B], D.45277
movq %rdi, %r12 # s, s
movl $208, %esi #,
addq $63, %rax #, D.45277
shrq $6, %rax #, D.45277
leaq 0(,%rax,8), %rdi #, D.45277
call __kmalloc #
testq %rax, %rax # D.45280
movq %rax, %r13 #, D.45280
je .L1339 #,
movl $1, %ecx #,
movl $32, %r8d #,
movq %r12, %rdx # s,
movq $flush_cpu_slab, %rsi #,
movq $has_cpu_slab, %rdi #,
call on_each_cpu_cond #
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
movl $64, %ecx #, node
cmpl $64, %eax #, D.45277
cmovg %ecx, %eax # node,, node, node
cmpl $64, %eax #, node
movl %eax, -52(%rbp) # node, %sfp
je .L1328 #,
movq $0, -72(%rbp) #, %sfp
.p2align 4,,10
.p2align 3
.L1336:
movslq -52(%rbp), %rax # %sfp, node
movq 192(%r12,%rax,8), %rax # s_6(D)->node, D.45281
movq %rax, %rbx # D.45281, D.45281
movq %rax, %rdi # D.45281,
movq %rax, -48(%rbp) # D.45281, %sfp
call _raw_spin_lock_irqsave #
movq 16(%rbx), %rdx # _105->partial.next, __mptr
leaq 16(%rbx), %r14 #, D.45278
xorl %ebx, %ebx # count
movq %rax, -64(%rbp) #, %sfp
leaq -32(%rdx), %r15 #, page
cmpq %rdx, %r14 # __mptr, D.45278
je .L1329 #,
.p2align 4,,10
.p2align 3
.L1330:
movq %r13, %rdx # D.45280,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
call validate_slab_slab #
movq 32(%r15), %rdx # page_85->D.11444.lru.next, __mptr
addq $1, %rbx #, count
leaq -32(%rdx), %r15 #, page
cmpq %rdx, %r14 # __mptr, D.45278
jne .L1330 #,
.L1329:
movq -48(%rbp), %rax # %sfp, D.45281
movq 8(%rax), %rcx # _105->nr_partial, D.45277
cmpq %rcx, %rbx # D.45277, count
jne .L1347 #,
.L1331:
testb $1, 10(%r12) #, s_6(D)->flags
je .L1332 #,
movq -48(%rbp), %rax # %sfp, D.45281
movq 48(%rax), %rdx # _105->full.next, __mptr
leaq 48(%rax), %r15 #, D.45278
leaq -32(%rdx), %r14 #, page
cmpq %rdx, %r15 # __mptr, D.45278
je .L1333 #,
.p2align 4,,10
.p2align 3
.L1334:
movq %r13, %rdx # D.45280,
movq %r14, %rsi # page,
movq %r12, %rdi # s,
call validate_slab_slab #
movq 32(%r14), %rdx # page_23->D.11444.lru.next, __mptr
addq $1, %rbx #, count
leaq -32(%rdx), %r14 #, page
cmpq %rdx, %r15 # __mptr, D.45278
jne .L1334 #,
.L1333:
movq -48(%rbp), %rax # %sfp, D.45281
movq 32(%rax), %rax # MEM[(volatile long int *)_105 + 32B], D.45284
cmpq %rax, %rbx # D.45284, count
jne .L1348 #,
.L1332:
movq -64(%rbp), %rsi # %sfp,
movslq %ebx, %rbx # count, D.45277
movq -48(%rbp), %rdi # %sfp,
call _raw_spin_unlock_irqrestore #
movl -52(%rbp), %edx # %sfp, D.45276
movl $64, %esi #,
addq %rbx, -72(%rbp) # D.45277, %sfp
movq $node_states+16, %rdi #,
addl $1, %edx #, D.45276
movslq %edx, %rdx # D.45276, D.45277
call find_next_bit #
movl $64, %ecx #, tmp147
cmpl $64, %eax #, D.45277
cmovg %ecx, %eax # node,, tmp147, node
cmpl $64, %eax #, node
movl %eax, -52(%rbp) # node, %sfp
jne .L1336 #,
movq %r13, %rdi # D.45280,
call kfree #
movl -72(%rbp), %eax # %sfp,
testl %eax, %eax #
js .L1349 #,
.L1337:
movslq -80(%rbp), %rax # %sfp, D.45279
addq $40, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L1339:
movq $-12, %rax #, D.45279
jmp .L1343 #
.L1349:
movslq -72(%rbp), %rax # %sfp, D.45279
jmp .L1343 #
.L1328:
movq %r13, %rdi # D.45280,
call kfree #
jmp .L1337 #
.L1348:
movq -48(%rbp), %rax # %sfp, D.45281
movq %rbx, %rdx # count,
movq $.LC57, %rdi #,
movq 96(%r12), %rsi # s_6(D)->name, s_6(D)->name
movq 32(%rax), %rcx # MEM[(volatile long int *)_105 + 32B], D.45284
xorl %eax, %eax #
call printk #
jmp .L1332 #
.L1347:
movq 96(%r12), %rsi # s_6(D)->name, s_6(D)->name
movq %rbx, %rdx # count,
movq $.LC56, %rdi #,
xorl %eax, %eax #
call printk #
jmp .L1331 #
.size validate_store, .-validate_store
.section .rodata.str1.1
.LC58:
.string "%07d"
.text
.p2align 4,,15
.type sysfs_slab_add, @function
sysfs_slab_add:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
movq %rdi, %rbx # s, s
call slab_unmergeable #
testl %eax, %eax # unmergeable
movl %eax, %r14d #, unmergeable
je .L1351 #,
movq slab_kset(%rip), %rax # slab_kset, tmp99
movq 96(%rbx), %rsi # s_9(D)->name, s_9(D)->name
leaq 24(%rax), %rdi #, D.45295
call sysfs_remove_link #
movq 96(%rbx), %r13 # s_9(D)->name, name
.L1352:
movq slab_kset(%rip), %rax # slab_kset, slab_kset
leaq 120(%rbx), %r15 #, D.45295
xorl %edx, %edx #
movq %r13, %r8 # name,
movq $.LC34, %rcx #,
movq %r15, %rdi # D.45295,
movq $slab_ktype, %rsi #,
movq %rax, 152(%rbx) # slab_kset, s_9(D)->kobj.kset
xorl %eax, %eax #
call kobject_init_and_add #
testl %eax, %eax # err
movl %eax, %r12d #, err
jne .L1358 #,
movq $slab_attr_group, %rsi #,
movq %r15, %rdi # D.45295,
call sysfs_create_group #
testl %eax, %eax # err
movl %eax, %r12d #, err
jne .L1359 #,
xorl %esi, %esi #
movq %r15, %rdi # D.45295,
call kobject_uevent #
testl %r14d, %r14d # unmergeable
je .L1375 #,
.L1366:
popq %rbx #
movl %r12d, %eax # err,
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1359:
movq %r15, %rdi # D.45295,
call kobject_del #
.L1358:
movq %r15, %rdi # D.45295,
call kobject_put #
testl %r14d, %r14d # unmergeable
jne .L1366 #,
.L1361:
movq %r13, %rdi # name,
call kfree #
popq %rbx #
movl %r12d, %eax # err,
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1351:
movq kmalloc_caches+48(%rip), %rdi # kmalloc_caches,
movl $208, %esi #,
call kmem_cache_alloc #
testq %rax, %rax # name
movq %rax, %r13 #, name
je .L1376 #,
movb $58, (%rax) #, MEM[(char *)name_34]
leaq 1(%rax), %rcx #, p
movq 8(%rbx), %rax # MEM[(long unsigned int *)s_9(D) + 8B], D.45293
movq %rcx, %rdx # p, p
testb $64, %ah #, D.45293
je .L1354 #,
movb $100, 1(%r13) #, MEM[(char *)name_34 + 1B]
leaq 2(%r13), %rdx #, p
movq 8(%rbx), %rax # MEM[(long unsigned int *)s_9(D) + 8B], D.45293
.L1354:
testl $131072, %eax #, D.45293
je .L1355 #,
movb $97, (%rdx) #, *p_44
addq $1, %rdx #, p
movq 8(%rbx), %rax # MEM[(long unsigned int *)s_9(D) + 8B], D.45293
.L1355:
testb $1, %ah #, D.45293
je .L1356 #,
movb $70, (%rdx) #, *p_48
addq $1, %rdx #, p
.L1356:
leaq 1(%rdx), %r12 #, p
movb $116, (%rdx) #, *p_50
cmpq %r12, %rcx # p, p
je .L1357 #,
leaq 2(%rdx), %r12 #, p
movb $45, 1(%rdx) #, MEM[(char *)p_50 + 1B]
.L1357:
movl 24(%rbx), %edx # MEM[(int *)s_9(D) + 24B], MEM[(int *)s_9(D) + 24B]
movq %r12, %rdi # p,
xorl %eax, %eax #
movq $.LC58, %rsi #,
call sprintf #
cltq
addq %rax, %r12 # D.45299, p
leaq 63(%r13), %rax #, D.45300
cmpq %rax, %r12 # D.45300, p
jbe .L1352 #,
#APP
# 5180 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 5180, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
.p2align 4,,10
.p2align 3
#NO_APP
.L1375:
movq 96(%rbx), %rsi # s_9(D)->name, s_9(D)->name
movq %rbx, %rdi # s,
call sysfs_slab_alias #
jmp .L1361 #
.L1376:
#APP
# 5152 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 5152, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.size sysfs_slab_add, .-sysfs_slab_add
.section .rodata.str1.1
.LC59:
.string "%lu"
.LC60:
.string " N%d=%lu"
.text
.p2align 4,,15
.type show_slab_objects, @function
show_slab_objects:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movq %rsi, %r15 # buf, buf
pushq %r14 #
movl $32976, %esi #,
movq %rdx, %r14 # flags, flags
pushq %r13 #
movq %rdi, %r13 # s, s
pushq %r12 #
pushq %rbx #
subq $40, %rsp #,
movq %rdx, -56(%rbp) # flags, %sfp
movslq nr_node_ids(%rip), %rdi # nr_node_ids, D.45305
salq $3, %rdi #, D.45305
call __kmalloc #
testq %rax, %rax # D.45316
movq %rax, %rbx #, D.45316
je .L1401 #,
xorl %r12d, %r12d # total
andl $4, %r14d #, flags
je .L1379 #,
movq -56(%rbp), %rax # %sfp, flags
movl $-1, %edx #, cpu
movq %rax, %r14 # flags, D.45305
andl $8, %eax #, D.45305
andl $16, %r14d #, D.45305
movq %rax, -48(%rbp) # D.45305, %sfp
.p2align 4,,10
.p2align 3
.L1380:
movq cpu_possible_mask(%rip), %rdi # cpu_possible_mask,
addl $1, %edx #, D.45313
movl $64, %esi #,
movslq %edx, %rdx # D.45313, D.45305
call find_next_bit #
cmpl nr_cpu_ids(%rip), %eax # nr_cpu_ids, D.45305
movl %eax, %edx # D.45305, cpu
jge .L1379 #,
cltq
movq 0(%r13), %rcx # s_43(D)->cpu_slab, D.45306
addq __per_cpu_offset(,%rax,8), %rcx # __per_cpu_offset, D.45306
movq 16(%rcx), %rsi # _48->page, page
testq %rsi, %rsi # page
je .L1380 #,
movq (%rsi), %rax # MEM[(const struct page *)page_49], D.45305
shrq $39, %rax #, D.45305
movl %eax, %edi # D.45305, D.45313
andl $63, %edi #, D.45313
testq %r14, %r14 # D.45305
je .L1382 #,
movzwl 26(%rsi), %eax # *page_49, *page_49
andl $32767, %eax #, D.45305
.L1383:
movslq %edi, %rsi # D.45313, D.45305
addq %rax, %r12 # D.45305, total
addq %rax, (%rbx,%rsi,8) # D.45305, *_61
movq 24(%rcx), %rsi # _48->partial, page
testq %rsi, %rsi # page
je .L1380 #,
movq (%rsi), %rcx # MEM[(const struct page *)page_65], D.45305
shrq $39, %rcx #, D.45305
andl $63, %ecx #, D.45313
testq %r14, %r14 # D.45305
je .L1384 #,
cmpb $0, __warned.31911(%rip) #, __warned
je .L1437 #,
.L1385:
movslq %ecx, %rcx # D.45313, D.45305
addq %rax, %r12 # D.45305, total
addq %rax, (%rbx,%rcx,8) # D.45305, *_85
jmp .L1380 #
.p2align 4,,10
.p2align 3
.L1379:
testb $1, -56(%rbp) #, %sfp
jne .L1438 #,
testb $2, -56(%rbp) #, %sfp
jne .L1439 #,
.L1389:
movq %r12, %rdx # total,
movq $.LC59, %rsi #,
movq %r15, %rdi # buf,
xorl %eax, %eax #
movl $64, %r12d #, node
call sprintf #
movl $64, %esi #,
movq $node_states+16, %rdi #,
movl %eax, %r13d #, x
call find_first_bit #
cmpl $64, %eax #, D.45305
cmovle %eax, %r12d # D.45305,, node
cmpl $64, %r12d #, node
je .L1398 #,
movl $64, %r14d #, tmp237
jmp .L1400 #
.p2align 4,,10
.p2align 3
.L1399:
addl $1, %r12d #, D.45313
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %r12d, %rdx # D.45313, D.45305
call find_next_bit #
cmpl $64, %eax #, D.45305
movl %eax, %r12d # D.45305, node
cmovg %r14d, %r12d # node,, tmp237, node
cmpl $64, %r12d #, node
je .L1398 #,
.L1400:
movslq %r12d, %rax # node, D.45305
movq (%rbx,%rax,8), %rcx # *_140, D.45305
testq %rcx, %rcx # D.45305
je .L1399 #,
movslq %r13d, %rdi # x, D.45311
movl %r12d, %edx # node,
movq $.LC60, %rsi #,
addq %r15, %rdi # buf, D.45312
xorl %eax, %eax #
call sprintf #
addl %eax, %r13d # D.45313, x
jmp .L1399 #
.p2align 4,,10
.p2align 3
.L1398:
movq %rbx, %rdi # D.45316,
call kfree #
movslq %r13d, %rax # x, D.45311
movl $10, %edx #,
addl $1, %r13d #, D.45313
movw %dx, (%r15,%rax) #, MEM[(void *)_152]
movslq %r13d, %rax # D.45313, D.45304
.L1378:
addq $40, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1382:
cmpq $0, -48(%rbp) #, %sfp
movl $1, %eax #, D.45305
je .L1383 #,
movzwl 24(%rsi), %eax # page_49->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.45305
jmp .L1383 #
.p2align 4,,10
.p2align 3
.L1384:
cmpq $0, -48(%rbp) #, %sfp
je .L1386 #,
cmpb $0, __warned.31916(%rip) #, __warned
jne .L1385 #,
movl $4323, %esi #,
movq $.LC2, %rdi #,
movl %ecx, -76(%rbp) # D.45313, %sfp
movq %rax, -72(%rbp) # D.45305, %sfp
movl %edx, -64(%rbp) # cpu, %sfp
call warn_slowpath_null #
movb $1, __warned.31916(%rip) #, __warned
movl -64(%rbp), %edx # %sfp, cpu
movq -72(%rbp), %rax # %sfp, D.45305
movl -76(%rbp), %ecx # %sfp, D.45313
jmp .L1385 #
.p2align 4,,10
.p2align 3
.L1386:
movslq 40(%rsi), %rax # page_65->D.11444.D.11439.pages, D.45305
jmp .L1385 #
.p2align 4,,10
.p2align 3
.L1438:
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.45305
cmovle %eax, %edx # D.45305,, node
cmpl $64, %edx #, node
je .L1389 #,
movq -56(%rbp), %rax # %sfp, flags
movq %rax, %r14 # flags, D.45305
andl $8, %eax #, D.45305
andl $16, %r14d #, D.45305
movq %rax, -48(%rbp) # D.45305, %sfp
jmp .L1393 #
.p2align 4,,10
.p2align 3
.L1440:
movq 40(%rdi), %rax # MEM[(volatile long int *)_251 + 40B], D.45318
.L1391:
cltq
addl $1, %edx #, D.45313
movl $64, %esi #,
addq %rax, (%rbx,%rcx,8) # D.45305, *_108
movslq %edx, %rdx # D.45313, D.45305
movq $node_states+16, %rdi #,
addq %rax, %r12 # D.45305, total
call find_next_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.45305
cmovle %eax, %edx # D.45305,, node
cmpl $64, %edx #, node
je .L1389 #,
.L1393:
movslq %edx, %rcx # node, D.45305
testq %r14, %r14 # D.45305
movq 192(%r13,%rcx,8), %rdi # s_43(D)->node, D.45317
jne .L1440 #,
cmpq $0, -48(%rbp) #, %sfp
jne .L1441 #,
movq 32(%rdi), %rax # MEM[(volatile long int *)_251 + 32B], D.45318
jmp .L1391 #
.p2align 4,,10
.p2align 3
.L1441:
movq 40(%rdi), %rax # MEM[(volatile long int *)_251 + 40B], D.45318
movq $count_free, %rsi #,
movq %rcx, -72(%rbp) # D.45305, %sfp
movl %edx, -64(%rbp) # node, %sfp
movq %rax, -56(%rbp) # D.45318, %sfp
call count_partial #
movl -56(%rbp), %esi # %sfp, x
movl -64(%rbp), %edx # %sfp, node
movq -72(%rbp), %rcx # %sfp, D.45305
subl %eax, %esi # D.45305, x
movl %esi, %eax # x, x
jmp .L1391 #
.p2align 4,,10
.p2align 3
.L1439:
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.45305
cmovle %eax, %edx # D.45305,, node
cmpl $64, %edx #, node
je .L1389 #,
movq -56(%rbp), %rax # %sfp, flags
movq %rax, %r14 # flags, D.45305
andl $8, %eax #, D.45305
andl $16, %r14d #, D.45305
movq %rax, -48(%rbp) # D.45305, %sfp
jmp .L1397 #
.p2align 4,,10
.p2align 3
.L1394:
cmpq $0, -48(%rbp) #, %sfp
jne .L1442 #,
movl 8(%rdi), %eax # _263->nr_partial, x
.L1395:
cltq
addl $1, %edx #, D.45313
movl $64, %esi #,
addq %rax, (%rbx,%rcx,8) # D.45305, *_129
movslq %edx, %rdx # D.45313, D.45305
movq $node_states+16, %rdi #,
addq %rax, %r12 # D.45305, total
call find_next_bit #
movl $64, %edx #, node
cmpl $64, %eax #, D.45305
cmovle %eax, %edx # D.45305,, node
cmpl $64, %edx #, node
je .L1389 #,
.L1397:
movslq %edx, %rcx # node, D.45305
testq %r14, %r14 # D.45305
movq 192(%r13,%rcx,8), %rdi # s_43(D)->node, D.45317
je .L1394 #,
movq $count_total, %rsi #,
movq %rcx, -64(%rbp) # D.45305, %sfp
movl %edx, -56(%rbp) # node, %sfp
call count_partial #
movl -56(%rbp), %edx # %sfp, node
movq -64(%rbp), %rcx # %sfp, D.45305
jmp .L1395 #
.p2align 4,,10
.p2align 3
.L1442:
movq $count_inuse, %rsi #,
movq %rcx, -64(%rbp) # D.45305, %sfp
movl %edx, -56(%rbp) # node, %sfp
call count_partial #
movl -56(%rbp), %edx # %sfp, node
movq -64(%rbp), %rcx # %sfp, D.45305
jmp .L1395 #
.L1401:
movq $-12, %rax #, D.45304
jmp .L1378 #
.L1437:
movl $4321, %esi #,
movq $.LC2, %rdi #,
movl %ecx, -76(%rbp) # D.45313, %sfp
movq %rax, -72(%rbp) # D.45305, %sfp
movl %edx, -64(%rbp) # cpu, %sfp
call warn_slowpath_null #
movb $1, __warned.31911(%rip) #, __warned
movl -64(%rbp), %edx # %sfp, cpu
movq -72(%rbp), %rax # %sfp, D.45305
movl -76(%rbp), %ecx # %sfp, D.45313
jmp .L1385 #
.size show_slab_objects, .-show_slab_objects
.p2align 4,,15
.type slabs_show, @function
slabs_show:
pushq %rbp #
movl $1, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size slabs_show, .-slabs_show
.p2align 4,,15
.type total_objects_show, @function
total_objects_show:
pushq %rbp #
movl $17, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size total_objects_show, .-total_objects_show
.p2align 4,,15
.type cpu_slabs_show, @function
cpu_slabs_show:
pushq %rbp #
movl $4, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size cpu_slabs_show, .-cpu_slabs_show
.p2align 4,,15
.type partial_show, @function
partial_show:
pushq %rbp #
movl $2, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size partial_show, .-partial_show
.p2align 4,,15
.type objects_partial_show, @function
objects_partial_show:
pushq %rbp #
movl $10, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size objects_partial_show, .-objects_partial_show
.p2align 4,,15
.type objects_show, @function
objects_show:
pushq %rbp #
movl $9, %edx #,
movq %rsp, %rbp #,
call show_slab_objects #
popq %rbp #
ret
.size objects_show, .-objects_show
.section .rodata.str1.1
.LC61:
.string "%7ld "
.LC62:
.string "%pS"
.LC63:
.string " age=%ld/%ld/%ld"
.LC64:
.string " age=%ld"
.LC65:
.string " pid=%ld-%ld"
.LC66:
.string " pid=%ld"
.text
.p2align 4,,15
.type list_locations, @function
list_locations:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
movl %edx, %r14d # alloc, alloc
pushq %r13 #
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
movq %rsi, %rbx # buf, buf
movl $208, %esi #,
subq $56, %rsp #,
movq $0, -64(%rbp) #, t.max
movzwl 48(%rdi), %edi # MEM[(struct kmem_cache *)s_30(D) + 48B], D.45348
movq $0, -56(%rbp) #, t.count
movq $0, -48(%rbp) #, t.loc
addq $63, %rdi #, D.45348
shrq $6, %rdi #, D.45348
salq $3, %rdi #, D.45348
call __kmalloc #
testq %rax, %rax # D.45354
movq %rax, %r13 #, D.45354
je .L1458 #,
leaq -64(%rbp), %rdi #, tmp274
movl $524496, %edx #,
movl $56, %esi #,
call alloc_loc_track #
testl %eax, %eax # D.45347
jne .L1499 #,
.L1458:
movq %r13, %rdi # D.45354,
call kfree #
movl $2681, %edi #,
movb $0, 14(%rbx) #, MEM[(void *)buf_69(D)]
movabsq $7863397576860792143, %rax #, tmp273
movl $1919905125, 8(%rbx) #, MEM[(void *)buf_69(D)]
movq %rax, (%rbx) # tmp273, MEM[(void *)buf_69(D)]
movl $14, %eax #, D.45347
movw %di, 12(%rbx) #, MEM[(void *)buf_69(D)]
.L1457:
addq $56, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1499:
movl $32, %r8d #,
movl $1, %ecx #,
movq %r12, %rdx # s,
movq $flush_cpu_slab, %rsi #,
movq $has_cpu_slab, %rdi #,
call on_each_cpu_cond #
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
movl $64, %esi #, node
cmpl $64, %eax #, D.45348
cmovg %esi, %eax # node,, node, node
cmpl $64, %eax #, node
movl %eax, -68(%rbp) # node, %sfp
je .L1469 #,
movq %rbx, -96(%rbp) # buf, %sfp
jmp .L1493 #
.p2align 4,,10
.p2align 3
.L1462:
movl -68(%rbp), %edx # %sfp, D.45347
movl $64, %esi #,
movq $node_states+16, %rdi #,
addl $1, %edx #, D.45347
movslq %edx, %rdx # D.45347, D.45348
call find_next_bit #
movl $64, %ecx #, tmp282
cmpl $64, %eax #, D.45348
cmovg %ecx, %eax # node,, tmp282, node
cmpl $64, %eax #, node
movl %eax, -68(%rbp) # node, %sfp
je .L1500 #,
.L1493:
movslq -68(%rbp), %rax # %sfp, node
movq 192(%r12,%rax,8), %rbx # s_30(D)->node, D.45360
movq 32(%rbx), %rax # MEM[(volatile long int *)_237 + 32B], D.45356
testq %rax, %rax # D.45356
je .L1462 #,
movq %rbx, %rdi # D.45360,
call _raw_spin_lock_irqsave #
movq 16(%rbx), %rdx # _237->partial.next, __mptr
movq %rax, -80(%rbp) #, %sfp
leaq 16(%rbx), %rax #, D.45350
leaq -32(%rdx), %r15 #, page
cmpq %rdx, %rax # __mptr, D.45350
je .L1466 #,
movq %rbx, -88(%rbp) # D.45360, %sfp
movq %r15, %rbx # page, page
movq %rax, %r15 # D.45350, D.45350
.p2align 4,,10
.p2align 3
.L1488:
movq %rbx, %rdx # page,
movq %r13, %r8 # D.45354,
movl %r14d, %ecx # alloc,
leaq -64(%rbp), %rdi #, tmp278
movq %r12, %rsi # s,
call process_slab #
movq 32(%rbx), %rdx # page_156->D.11444.lru.next, __mptr
leaq -32(%rdx), %rbx #, page
cmpq %rdx, %r15 # __mptr, D.45350
jne .L1488 #,
movq -88(%rbp), %rbx # %sfp, D.45360
.L1466:
movq 48(%rbx), %rdx # _237->full.next, __mptr
leaq 48(%rbx), %rax #, D.45350
leaq -32(%rdx), %r15 #, page
cmpq %rdx, %rax # __mptr, D.45350
je .L1465 #,
movq %rbx, -88(%rbp) # D.45360, %sfp
movq %r15, %rbx # page, page
movq %rax, %r15 # D.45350, D.45350
.p2align 4,,10
.p2align 3
.L1489:
movq %rbx, %rdx # page,
movq %r13, %r8 # D.45354,
movl %r14d, %ecx # alloc,
leaq -64(%rbp), %rdi #, tmp279
movq %r12, %rsi # s,
call process_slab #
movq 32(%rbx), %rdx # page_157->D.11444.lru.next, __mptr
leaq -32(%rdx), %rbx #, page
cmpq %rdx, %r15 # __mptr, D.45350
jne .L1489 #,
movq -88(%rbp), %rbx # %sfp, D.45360
.L1465:
movq -80(%rbp), %rsi # %sfp,
movq %rbx, %rdi # D.45360,
call _raw_spin_unlock_irqrestore #
jmp .L1462 #
.p2align 4,,10
.p2align 3
.L1500:
movq -96(%rbp), %rbx # %sfp, buf
.L1469:
xorl %r15d, %r15d # len
cmpq $0, -56(%rbp) #, t.count
je .L1461 #,
movq -48(%rbp), %r14 # t.loc, l
xorl %r12d, %r12d # i
xorl %r15d, %r15d # len
jmp .L1471 #
.p2align 4,,10
.p2align 3
.L1503:
movslq %r15d, %rdi # len, D.45352
movq $.LC62, %rsi #,
xorl %eax, %eax #
addq %rbx, %rdi # buf, D.45353
call sprintf #
movq 24(%r14), %rsi # l_165->min_time, D.45356
addl %eax, %r15d # D.45347, len
movq 16(%r14), %rax # l_165->sum_time, D.45355
cmpq %rsi, %rax # D.45356, D.45355
je .L1474 #,
.L1504:
movl (%r14), %ecx # l_165->count, D.45357
movslq %r15d, %rdi # len, D.45352
xorl %edx, %edx # tmp215
movq 32(%r14), %r8 # l_165->max_time,
addq %rbx, %rdi # buf, D.45353
divq %rcx # D.45357
movq %rsi, %rdx # D.45356,
movq %rax, %rcx # D.45361, D.45361
movq $.LC63, %rsi #,
xorl %eax, %eax #
call sprintf #
addl %eax, %r15d # D.45347, len
.L1475:
movq 40(%r14), %rdx # l_165->min_pid, D.45356
movslq %r15d, %rdi # len, D.45352
movq 48(%r14), %rcx # l_165->max_pid, D.45356
addq %rbx, %rdi # buf, D.45353
cmpq %rcx, %rdx # D.45356, D.45356
je .L1476 #,
movq $.LC65, %rsi #,
xorl %eax, %eax #
call sprintf #
leal (%rax,%r15), %edx #, len
.L1477:
movq cpu_online_mask(%rip), %rax # cpu_online_mask, tmp286
movq (%rax), %rdi # MEM[(const long unsigned int *)_233], MEM[(const long unsigned int *)_233]
#APP
# 53 "./arch/x86/include/asm/arch_hweight.h" 1
661:
call __sw_hweight64
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+23)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
.byte 0xf3,0x48,0x0f,0xb8,0xc7
6641:
.popsection
# 0 "" 2
#NO_APP
cmpl $1, %eax #, res
jbe .L1478 #,
cmpq $0, 56(%r14) #, MEM[(const long unsigned int *)l_165 + 56B]
je .L1478 #,
cmpl $4035, %edx #, len
jbe .L1501 #,
.L1478:
cmpl $1, nr_online_nodes(%rip) #, nr_online_nodes
jle .L1479 #,
cmpq $0, 64(%r14) #, MEM[(const long unsigned int *)l_165 + 64B]
je .L1479 #,
cmpl $4035, %edx #, len
jbe .L1502 #,
.L1479:
movslq %edx, %rax # len, D.45352
movl $10, %ecx #,
addq $1, %r12 #, i
movw %cx, (%rbx,%rax) #, MEM[(void *)_139]
leal 1(%rdx), %r15d #, len
cmpq %r12, -56(%rbp) # i, t.count
jbe .L1461 #,
movq -48(%rbp), %rax # t.loc, t.loc
leaq (%r12,%r12,8), %rdx #, D.45348
cmpl $3757, %r15d #, len
leaq (%rax,%rdx,8), %r14 #, l
ja .L1461 #,
.L1471:
movq (%r14), %rdx # l_165->count,
movslq %r15d, %rdi # len, D.45352
xorl %eax, %eax #
addq %rbx, %rdi # buf, D.45353
movq $.LC61, %rsi #,
call sprintf #
movq 8(%r14), %rdx # l_165->addr, D.45348
addl %eax, %r15d # D.45347, len
testq %rdx, %rdx # D.45348
jne .L1503 #,
movabsq $7022907516785749564, %rcx #, tmp283
movslq %r15d, %rax # len, D.45352
addl $15, %r15d #, len
addq %rbx, %rax # buf, D.45353
movq %rcx, (%rax) # tmp283, MEM[(void *)_82]
movabsq $17562964737485929, %rcx #, tmp284
movq %rcx, 8(%rax) # tmp284, MEM[(void *)_82]
movq 16(%r14), %rax # l_165->sum_time, D.45355
movq 24(%r14), %rsi # l_165->min_time, D.45356
cmpq %rsi, %rax # D.45356, D.45355
jne .L1504 #,
.L1474:
movslq %r15d, %rdi # len, D.45352
movq %rax, %rdx # D.45355,
movq $.LC64, %rsi #,
addq %rbx, %rdi # buf, D.45353
xorl %eax, %eax #
call sprintf #
addl %eax, %r15d # D.45347, len
jmp .L1475 #
.p2align 4,,10
.p2align 3
.L1476:
movq $.LC66, %rsi #,
xorl %eax, %eax #
call sprintf #
leal (%rax,%r15), %edx #, len
jmp .L1477 #
.p2align 4,,10
.p2align 3
.L1502:
leal 7(%rdx), %r15d #, len
movslq %edx, %rax # len, D.45352
movl $4046, %esi #, D.45358
movabsq $17296852893265440, %rcx #, tmp288
movslq %r15d, %rdi # len, D.45352
subl %r15d, %esi # len, D.45358
movq %rcx, (%rbx,%rax) # tmp288, MEM[(void *)_129]
leaq 64(%r14), %rdx #, D.45363
addq %rbx, %rdi # buf, D.45353
movl $64, %ecx #,
call bitmap_scnlistprintf #
leal (%r15,%rax), %edx #, len
jmp .L1479 #
.p2align 4,,10
.p2align 3
.L1501:
movslq %edx, %rax # len, D.45352
movl $15731, %esi #,
movl $64, %ecx #,
leal 6(%rdx), %r15d #, len
addq %rbx, %rax # buf, D.45353
movw %si, 4(%rax) #, MEM[(void *)_116]
movslq %r15d, %rdi # len, D.45352
movl $4046, %esi #, D.45358
leaq 56(%r14), %rdx #, D.45363
movl $1970299680, (%rax) #, MEM[(void *)_116]
subl %r15d, %esi # len, D.45358
movb $0, 6(%rax) #, MEM[(void *)_116]
addq %rbx, %rdi # buf, D.45353
call bitmap_scnlistprintf #
leal (%r15,%rax), %edx #, len
jmp .L1478 #
.p2align 4,,10
.p2align 3
.L1461:
movq -64(%rbp), %rdi # MEM[(struct loc_track *)&t],
leaq -64(%rbp), %rax #, tmp290
leaq 16(%rax), %rsi #, tmp244
call free_loc_track.isra.66 #
movq %r13, %rdi # D.45354,
call kfree #
cmpq $0, -56(%rbp) #, t.count
movl %r15d, %eax # len, D.45347
jne .L1457 #,
movabsq $748006974760709966, %rcx #, tmp291
movb $0, 8(%rbx) #, MEM[(void *)buf_69(D)]
addl $8, %eax #, D.45347
movq %rcx, (%rbx) # tmp291, MEM[(void *)buf_69(D)]
jmp .L1457 #
.size list_locations, .-list_locations
.p2align 4,,15
.type free_calls_show, @function
free_calls_show:
testb $1, 10(%rdi) #, s_4(D)->flags
movq $-38, %rax #, D.45373
je .L1511 #,
pushq %rbp #
movl $1, %edx #,
movq %rsp, %rbp #,
call list_locations #
popq %rbp #
cltq
.L1511:
rep ret
.size free_calls_show, .-free_calls_show
.p2align 4,,15
.type alloc_calls_show, @function
alloc_calls_show:
testb $1, 10(%rdi) #, s_4(D)->flags
movq $-38, %rax #, D.45378
je .L1518 #,
pushq %rbp #
xorl %edx, %edx #
movq %rsp, %rbp #,
call list_locations #
popq %rbp #
cltq
.L1518:
rep ret
.size alloc_calls_show, .-alloc_calls_show
.section .rodata.str1.1
.LC67:
.string "slab"
.section .rodata.str1.8
.align 8
.LC68:
.string "\0013Cannot register slab subsystem.\n"
.align 8
.LC69:
.string "\0013SLUB: Unable to add boot slab %s to sysfs\n"
.align 8
.LC70:
.string "\0013SLUB: Unable to add boot slab alias %s to sysfs\n"
.section .init.text
.type slab_sysfs_init, @function
slab_sysfs_init:
pushq %rbp #
movq $slab_mutex, %rdi #,
movq %rsp, %rbp #,
pushq %rbx #
call mutex_lock #
movq kernel_kobj(%rip), %rdx # kernel_kobj,
movq $slab_uevent_ops, %rsi #,
movq $.LC67, %rdi #,
call kset_create_and_add #
testq %rax, %rax # slab_kset.1067
movq %rax, slab_kset(%rip) # slab_kset.1067, slab_kset
jne .L1520 #,
movq $slab_mutex, %rdi #,
call mutex_unlock #
movq $.LC68, %rdi #,
xorl %eax, %eax #
call printk #
movl $-38, %eax #, D.45383
jmp .L1521 #
.L1520:
movq slab_caches(%rip), %rax # slab_caches.next, tmp86
movl $5, slab_state(%rip) #, slab_state
leaq -104(%rax), %rbx #, s
.L1522:
leaq 104(%rbx), %rax #, D.45384
cmpq $slab_caches, %rax #, D.45384
je .L1525 #,
movq %rbx, %rdi # s,
call sysfs_slab_add #
testl %eax, %eax # err
je .L1523 #,
movq 96(%rbx), %rsi # s_1->name, s_1->name
movq $.LC69, %rdi #,
xorl %eax, %eax #
call printk #
.L1523:
movq 104(%rbx), %rbx # s_1->list.next, __mptr
subq $104, %rbx #, s
jmp .L1522 #
.L1527:
movq 16(%rbx), %rax # alias_list.1071_26->next, alias_list.1071_26->next
movq 8(%rbx), %rsi # alias_list.1071_26->name, alias_list.1071_26->name
movq (%rbx), %rdi # alias_list.1071_26->s,
movq %rax, alias_list(%rip) # alias_list.1071_26->next, alias_list
call sysfs_slab_alias #
testl %eax, %eax # err
je .L1526 #,
movq 8(%rbx), %rsi # alias_list.1071_26->name, alias_list.1071_26->name
movq $.LC70, %rdi #,
xorl %eax, %eax #
call printk #
.L1526:
movq %rbx, %rdi # alias_list.1071,
call kfree #
.L1525:
movq alias_list(%rip), %rbx # alias_list, alias_list.1071
testq %rbx, %rbx # alias_list.1071
jne .L1527 #,
movq $slab_mutex, %rdi #,
call mutex_unlock #
xorl %eax, %eax # D.45383
.L1521:
popq %rbx #
popq %rbp #
ret
.size slab_sysfs_init, .-slab_sysfs_init
.section .rodata.str1.8
.align 8
.LC71:
.string "Objects remaining in %s on kmem_cache_close()"
.align 8
.LC72:
.string "\0013INFO: Object 0x%p @offset=%tu\n"
.text
.p2align 4,,15
.type free_partial, @function
free_partial:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
movq %rsi, %r13 # n, n
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
subq $24, %rsp #,
movq 16(%rsi), %rax # n_6(D)->partial.next, __mptr
movq (%rax), %rdx # MEM[(struct page *)__mptr_7 + -32B].D.11444.lru.next, tmp194
leaq -32(%rax), %r15 #, page
leaq -32(%rdx), %r14 #, page
leaq 16(%rsi), %rdx #, D.45410
cmpq %rax, %rdx # __mptr, D.45410
movq %rdx, -48(%rbp) # D.45410, %sfp
jne .L1561 #,
jmp .L1535 #
.p2align 4,,10
.p2align 3
.L1564:
movq 40(%r15), %rax # MEM[(struct list_head *)page_57 + 32B].prev, D.45410
movq %r15, %rsi # page,
movq %r12, %rdi # s,
movq 32(%r15), %rdx # MEM[(struct list_head *)page_57 + 32B].next, D.45410
movq %rax, 8(%rdx) # D.45410, _20->prev
movq %rdx, (%rax) # D.45410, _21->next
movabsq $-2401263026317557504, %rax #, tmp196
movq %rax, 32(%r15) # tmp196, MEM[(struct list_head *)page_57 + 32B].next
movabsq $-2401263026316508672, %rax #, tmp197
movq %rax, 40(%r15) # tmp197, MEM[(struct list_head *)page_57 + 32B].prev
subq $1, 8(%r13) #, MEM[(long unsigned int *)n_6(D) + 8B]
call discard_slab #
.L1538:
movq 32(%r14), %rax # page_119->D.11444.lru.next, tmp205
leaq -32(%rax), %rdx #, page
leaq 32(%r14), %rax #, D.45410
cmpq %rax, -48(%rbp) # D.45410, %sfp
je .L1535 #,
movq %r14, %r15 # page, page
movq %rdx, %r14 # page, page
.L1561:
cmpw $0, 24(%r15) #, page_57->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
je .L1564 #,
movq (%r15), %rax # MEM[(const struct page *)page_57], D.45412
shrq $45, %rax #, D.45412
movq %rax, %rdx # D.45412, D.45412
shrq $7, %rdx #, D.45412
movq mem_section(,%rdx,8), %rdx # mem_section, D.45414
testq %rdx, %rdx # D.45414
je .L1539 #,
andl $127, %eax #, D.45412
salq $5, %rax #, D.45412
addq %rax, %rdx # D.45412, D.45414
.L1539:
movzwl 26(%r15), %edi # *page_57, *page_57
movl $32800, %esi #,
movq (%rdx), %rbx # MEM[(struct mem_section *)_40], map
andl $32767, %edi #, D.45412
addq $63, %rdi #, D.45412
shrq $6, %rdi #, D.45412
salq $3, %rdi #, D.45412
call __kmalloc #
testq %rax, %rax # D.45418
movq %rax, -56(%rbp) # D.45418, %sfp
je .L1538 #,
movq 96(%r12), %rcx # s_15(D)->name, s_15(D)->name
movq $.LC71, %rdx #,
movq %r15, %rsi # page,
movq %r12, %rdi # s,
xorl %eax, %eax #
call slab_err #
movq -56(%rbp), %r8 # %sfp, D.45418
.L1540:
#APP
# 206 "./arch/x86/include/asm/bitops.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; bts $0, (%r15); jc .L1542 #, MEM[(volatile long unsigned int *)_137],
# 0 "" 2
#NO_APP
andq $-4, %rbx #, map
movq %r15, %r10 # page, D.45416
movabsq $-131941395333120, %rax #, tmp200
subq %rbx, %r10 # map, D.45416
sarq $6, %r10 #, D.45416
salq $12, %r10 #, D.45416
addq %rax, %r10 # tmp200, D.45412
movq %r10, -64(%rbp) # D.45412, %sfp
movq %r8, %rdx # D.45418,
movq %r12, %rdi # s,
movq %r15, %rsi # page,
movq %r8, -56(%rbp) # D.45418, %sfp
call get_map #
movzwl 26(%r15), %r11d # *page_57, *page_57
movl 24(%r12), %edi # s_15(D)->size, D.45413
movq -64(%rbp), %r10 # %sfp, D.45412
movq -56(%rbp), %r8 # %sfp, D.45418
movl %r11d, %eax # *page_57, D.45413
andl $32767, %eax #, D.45413
movslq %edi, %rcx # D.45413, D.45415
imull %edi, %eax # D.45413, D.45413
movq %r10, %rbx # D.45412, p
cltq
addq %r10, %rax # D.45412, D.45418
cmpq %rax, %r10 # D.45418, D.45412
jae .L1547 #,
.p2align 4,,10
.p2align 3
.L1560:
movq %rbx, %rsi # p, D.45415
subq %r10, %rsi # D.45412, D.45415
movq %rsi, %rax # D.45415, D.45415
cqto
idivq %rcx # D.45415
cltq
#APP
# 318 "./arch/x86/include/asm/bitops.h" 1
bt %rax,(%r8) # D.45415, MEM[(long unsigned int *)_134]
sbb %eax,%eax # oldbit
# 0 "" 2
#NO_APP
testl %eax, %eax # oldbit
je .L1565 #,
.L1545:
movl %r11d, %eax # *page_57, D.45413
movslq %edi, %rcx # D.45413, D.45415
andl $32767, %eax #, D.45413
addq %rcx, %rbx # D.45415, p
imull %edi, %eax # D.45413, D.45413
cltq
addq %r10, %rax # D.45412, D.45418
cmpq %rax, %rbx # D.45418, p
jb .L1560 #,
.L1547:
#APP
# 139 "./arch/x86/include/asm/bitops.h" 1
btr $0,(%r15) #, MEM[(volatile long int *)_137]
# 0 "" 2
#NO_APP
movq %r8, %rdi # D.45418,
call kfree #
jmp .L1538 #
.p2align 4,,10
.p2align 3
.L1542:
.L1551:
#APP
# 691 "./arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movq (%r15), %rax # MEM[(const long unsigned int *)page_57], D.45412
testb $1, %al #, D.45412
jne .L1551 #,
.p2align 4,,4
jmp .L1540 #
.p2align 4,,10
.p2align 3
.L1535:
addq $24, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L1565:
movq %rsi, %rdx # D.45415,
movq $.LC72, %rdi #,
movq %rbx, %rsi # p,
movq %r8, -64(%rbp) # D.45418, %sfp
movq %r10, -56(%rbp) # D.45412, %sfp
call printk #
testb $1, 10(%r12) #, s_15(D)->flags
movq -56(%rbp), %r10 # %sfp, D.45412
movq -64(%rbp), %r8 # %sfp, D.45418
jne .L1562 #,
movzwl 26(%r15), %r11d # *page_57, *page_57
movl 24(%r12), %edi # s_15(D)->size, D.45413
jmp .L1545 #
.L1562:
movq %r12, %rdi # s,
movq %rbx, %rsi # p,
movq %r8, -64(%rbp) # D.45418, %sfp
movq %r10, -56(%rbp) # D.45412, %sfp
call print_tracking.part.52 #
movzwl 26(%r15), %r11d # *page_57, *page_57
movl 24(%r12), %edi # s_15(D)->size, D.45413
movq -64(%rbp), %r8 # %sfp, D.45418
movq -56(%rbp), %r10 # %sfp, D.45412
jmp .L1545 #
.size free_partial, .-free_partial
.p2align 4,,15
.globl __kmem_cache_shutdown
.type __kmem_cache_shutdown, @function
__kmem_cache_shutdown:
pushq %rbp #
movq %rdi, %rdx # s,
movl $32, %r8d #,
movq %rsp, %rbp #,
pushq %r15 #
movl $1, %ecx #,
pushq %r14 #
movq $flush_cpu_slab, %rsi #,
movq %rdi, %r14 # s, s
pushq %r13 #
movq $has_cpu_slab, %rdi #,
movl $64, %r15d #, tmp84
pushq %r12 #
pushq %rbx #
movl $64, %ebx #, node
call on_each_cpu_cond #
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
cmpl $64, %eax #, D.45428
cmovle %eax, %ebx # D.45428,, node
cmpl $64, %ebx #, node
jne .L1576 #,
jmp .L1569 #
.p2align 4,,10
.p2align 3
.L1578:
movq 192(%r13), %rax # MEM[(struct kmem_cache *)_29 + 192B], D.45430
movq 32(%rax), %rax # MEM[(volatile long int *)_10 + 32B], D.45431
testq %rax, %rax # D.45431
jne .L1572 #,
addl $1, %ebx #, D.45432
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %ebx, %rdx # D.45432, D.45428
call find_next_bit #
cmpl $64, %eax #, D.45428
movl %eax, %ebx # D.45428, node
cmovg %r15d, %ebx # node,, tmp84, node
cmpl $64, %ebx #, node
je .L1569 #,
.L1576:
movslq %ebx, %rax # node, D.45429
movq %r14, %rdi # s,
leaq (%r14,%rax,8), %r13 #, D.45434
movq 192(%r13), %r12 # MEM[(struct kmem_cache *)_29 + 192B], D.45430
movq %r12, %rsi # D.45430,
call free_partial #
cmpq $0, 8(%r12) #, _8->nr_partial
je .L1578 #,
.L1572:
popq %rbx #
movl $1, %eax #, D.45432
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1569:
movq (%r14), %rdi # s_2(D)->cpu_slab,
call free_percpu #
movq %r14, %rdi # s,
call free_kmem_cache_nodes #
popq %rbx #
xorl %eax, %eax # D.45432
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.size __kmem_cache_shutdown, .-__kmem_cache_shutdown
.p2align 4,,15
.globl __kmem_cache_shrink
.type __kmem_cache_shrink, @function
__kmem_cache_shrink:
pushq %rbp #
movl $208, %esi #,
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
movq %rdi, %r12 # s, s
pushq %rbx #
subq $8, %rsp #,
movzwl 48(%rdi), %eax # MEM[(struct kmem_cache *)s_18(D) + 48B], D.45450
movslq %eax, %rdi # D.45450, D.45451
movl %eax, -44(%rbp) # D.45450, %sfp
salq $4, %rdi #, D.45451
call __kmalloc #
testq %rax, %rax # D.45457
movq %rax, %rbx #, D.45457
je .L1600 #,
movl $32, %r8d #,
movl $1, %ecx #,
movq %r12, %rdx # s,
movq $flush_cpu_slab, %rsi #,
movq $has_cpu_slab, %rdi #,
movl $64, %r14d #, node
call on_each_cpu_cond #
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
cmpl $64, %eax #, D.45451
cmovle %eax, %r14d # D.45451,, node
cmpl $64, %r14d #, node
je .L1584 #,
movl -44(%rbp), %eax # %sfp, D.45450
subl $1, %eax #,
movl %eax, -48(%rbp) # i, %sfp
salq $4, %rax #, D.45456
leaq 16(%rbx,%rax), %r13 #, D.45456
.p2align 4,,10
.p2align 3
.L1599:
movslq %r14d, %rax # node, node
movq 192(%r12,%rax,8), %r15 # s_18(D)->node, D.45458
cmpq $0, 8(%r15) #, _154->nr_partial
je .L1595 #,
movl -44(%rbp), %edx # %sfp,
movq %rbx, %rax # D.45457, ivtmp.1799
testl %edx, %edx #
je .L1588 #,
.p2align 4,,10
.p2align 3
.L1603:
movq %rax, (%rax) # ivtmp.1799, MEM[base: _27, offset: 0B]
movq %rax, 8(%rax) # ivtmp.1799, MEM[base: _27, offset: 8B]
addq $16, %rax #, ivtmp.1799
cmpq %r13, %rax # D.45456, ivtmp.1799
jne .L1603 #,
.L1588:
movq %r15, %rdi # D.45458,
call _raw_spin_lock_irqsave #
movq 16(%r15), %rsi # _154->partial.next, __mptr
leaq 16(%r15), %r10 #, D.45452
movq (%rsi), %rdi # MEM[(struct page *)__mptr_34 + -32B].D.11444.lru.next, tmp194
cmpq %r10, %rsi # D.45452, D.45452
movq %rsi, %rcx # __mptr, D.45452
leaq -32(%rsi), %rdx #, page
leaq -32(%rdi), %r9 #, page
je .L1587 #,
movq (%rsi), %rsi # MEM[(struct list_head *)__mptr_34].next, D.45452
jmp .L1593 #
.p2align 4,,10
.p2align 3
.L1613:
movq %r9, %rdx # page, page
movq %rdi, %r9 # page, page
.L1593:
movzwl 24(%rdx), %edi # page_90->D.11432.D.11431.D.11429.D.11427.D.11425.inuse, D.45451
movq 40(%rdx), %r8 # MEM[(struct list_head *)page_90 + 32B].prev, D.45452
salq $4, %rdi #, D.45451
movq %r8, 8(%rsi) # D.45452, _148->prev
addq %rbx, %rdi # D.45457, D.45452
movq %rsi, (%r8) # D.45452, _156->next
movq (%rdi), %rsi # _43->next, D.45452
movq %rcx, 8(%rsi) # D.45452, _157->prev
movq %rsi, 32(%rdx) # D.45452, MEM[(struct list_head *)page_90 + 32B].next
movq %rdi, 40(%rdx) # D.45452, MEM[(struct list_head *)page_90 + 32B].prev
movq %rcx, (%rdi) # D.45452, _43->next
cmpw $0, 24(%rdx) #, page_90->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
jne .L1592 #,
subq $1, 8(%r15) #, _154->nr_partial
.L1592:
movq 32(%r9), %rsi # page_92->D.11444.lru.next, __mptr
leaq 32(%r9), %rcx #, D.45452
cmpq %r10, %rcx # D.45452, D.45452
leaq -32(%rsi), %rdi #, page
jne .L1613 #,
.L1587:
movl -48(%rbp), %ecx # %sfp, i
testl %ecx, %ecx # i
movl %ecx, %edx # i, i
jle .L1591 #,
.p2align 4,,10
.p2align 3
.L1604:
movslq %edx, %rcx # i, D.45451
movq 24(%r15), %rdi # _154->partial.prev, D.45452
salq $4, %rcx #, D.45451
addq %rbx, %rcx # D.45457, D.45455
movq (%rcx), %rsi # _55->next, D.45452
cmpq %rsi, %rcx # D.45452, D.45455
je .L1596 #,
movq (%rdi), %r8 # _52->next, D.45452
movq 8(%rcx), %rcx # _55->prev, last
movq %rdi, 8(%rsi) # D.45452, _158->prev
movq %rsi, (%rdi) # D.45452, _52->next
movq %r8, (%rcx) # D.45452, last_160->next
movq %rcx, 8(%r8) # last, _159->prev
.L1596:
subl $1, %edx #, i
jne .L1604 #,
.L1591:
movq %rax, %rsi # flags,
movq %r15, %rdi # D.45458,
call _raw_spin_unlock_irqrestore #
movq (%rbx), %rdx # MEM[(struct list_head *)_149].next, __mptr
movq (%rdx), %rax # MEM[(struct page *)__mptr_59 + -32B].D.11444.lru.next, tmp195
leaq -32(%rdx), %rsi #, page
cmpq %rdx, %rbx # __mptr, D.45457
leaq -32(%rax), %r15 #, page
jne .L1605 #,
jmp .L1595 #
.p2align 4,,10
.p2align 3
.L1614:
movq %r15, %rsi # page, page
movq %rdx, %r15 # page, page
.L1605:
movq %r12, %rdi # s,
call discard_slab #
movq 32(%r15), %rax # page_93->D.11444.lru.next, tmp196
leaq -32(%rax), %rdx #, page
leaq 32(%r15), %rax #, D.45452
cmpq %rax, %rbx # D.45452, D.45457
jne .L1614 #,
.L1595:
addl $1, %r14d #, D.45450
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %r14d, %rdx # D.45450, D.45451
movl $64, %r14d #, node
call find_next_bit #
cmpl $64, %eax #, D.45451
cmovle %eax, %r14d # D.45451,, node
cmpl $64, %r14d #, node
jne .L1599 #,
.L1584:
movq %rbx, %rdi # D.45457,
call kfree #
xorl %eax, %eax # D.45450
.L1580:
addq $8, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L1600:
movl $-12, %eax #, D.45450
jmp .L1580 #
.size __kmem_cache_shrink, .-__kmem_cache_shrink
.section .rodata.str1.1
.LC73:
.string "kmem_cache_node"
.LC74:
.string "kmem_cache"
.section .rodata.str1.8
.align 8
.LC75:
.string "\0016SLUB: HWalign=%d, Order=%d-%d, MinObjects=%d, CPUs=%d, Nodes=%d\n"
.section .init.text
.globl kmem_cache_init
.type kmem_cache_init, @function
kmem_cache_init:
pushq %rbp #
movl $8192, %ecx #,
movl $64, %edx #,
movq %rsp, %rbp #,
pushq %r12 #
movq $.LC73, %rsi #,
pushq %rbx #
movq $boot_kmem_cache_node.31629, %rbx #, tmp72
movq $boot_kmem_cache.31628, %r12 #, tmp73
pushq %rax #
movq %rbx, %rdi # tmp72,
movq %rbx, kmem_cache_node(%rip) # tmp72, kmem_cache_node
movq %r12, kmem_cache(%rip) # tmp73, kmem_cache
call create_boot_cache #
movslq nr_node_ids(%rip), %rax # nr_node_ids, D.45462
movl $8192, %ecx #,
movq kmem_cache(%rip), %rdi # kmem_cache,
movq $.LC74, %rsi #,
movl $1, slab_state(%rip) #, slab_state
leaq 192(,%rax,8), %rdx #, D.45462
call create_boot_cache #
movq %r12, %rdi # tmp73,
call bootstrap #
movq %rbx, %rdi # tmp72,
movq %rax, kmem_cache(%rip) # kmem_cache.416, kmem_cache
call bootstrap #
xorl %edi, %edi #
movq %rax, kmem_cache_node(%rip) # kmem_cache_node.417, kmem_cache_node
call create_kmalloc_caches #
movq $slab_notifier, %rdi #,
call register_cpu_notifier #
movl nr_node_ids(%rip), %eax # nr_node_ids, nr_node_ids
movq $.LC75, %rdi #,
movl slub_min_order(%rip), %edx # slub_min_order,
movl nr_cpu_ids(%rip), %r9d # nr_cpu_ids,
movl slub_min_objects(%rip), %r8d # slub_min_objects,
movl slub_max_order(%rip), %ecx # slub_max_order,
movl %eax, (%rsp) # nr_node_ids,
xorl %eax, %eax #
movl boot_cpu_data+148(%rip), %esi # boot_cpu_data.x86_cache_alignment,
call printk #
popq %rdx #
popq %rbx #
popq %r12 #
popq %rbp #
ret
.size kmem_cache_init, .-kmem_cache_init
.globl kmem_cache_init_late
.type kmem_cache_init_late, @function
kmem_cache_init_late:
pushq %rbp #
movq %rsp, %rbp #,
popq %rbp #
ret
.size kmem_cache_init_late, .-kmem_cache_init_late
.text
.p2align 4,,15
.globl __kmem_cache_alias
.type __kmem_cache_alias, @function
__kmem_cache_alias:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $16, %rsp #,
movl slub_nomerge(%rip), %eax # slub_nomerge,
testl %eax, %eax #
jne .L1620 #,
testl $11078656, %ecx #, flags
jne .L1620 #,
testq %r8, %r8 # ctor
je .L1639 #,
.L1620:
xorl %r15d, %r15d # s
.L1629:
addq $16, %rsp #,
movq %r15, %rax # s,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1639:
movq %rsi, %rbx # size, size
movq %rdi, %r13 # name, name
movq %rdx, %rsi # align, align
leaq 7(%rbx), %r12 #, size
movq %rcx, %rdi # flags,
movq %rcx, -56(%rbp) # flags, %sfp
andq $-8, %r12 #, size
movq %r12, %rdx # size,
call calculate_alignment #
movq -56(%rbp), %rcx # %sfp, flags
movq %r13, %rsi # name,
leaq -1(%r12,%rax), %r12 #, D.45483
negq %rax # D.45483
andq %rax, %r12 # D.45483, size
movq %rax, -48(%rbp) # D.45483, %sfp
movq %rcx, %rdi # flags,
call kmem_cache_flags.isra.63 #
movq %rax, %r14 #, flags
movq slab_caches(%rip), %rax # slab_caches.next, __mptr
leaq -104(%rax), %r15 #, s
cmpq $slab_caches, %rax #, __mptr
je .L1620 #,
.p2align 4,,10
.p2align 3
.L1623:
movq %r15, %rdi # s,
call slab_unmergeable #
testl %eax, %eax # D.45481
jne .L1621 #,
movslq 24(%r15), %rax # s_60->size, D.45483
cmpq %rax, %r12 # D.45483, size
ja .L1621 #,
movq %r14, %rcx # flags, D.45483
xorq 8(%r15), %rcx # s_60->flags, D.45483
testl $147712, %ecx #, D.45483
jne .L1621 #,
movq -48(%rbp), %rcx # %sfp, D.45483
andq %rax, %rcx # D.45483, D.45483
cmpq %rcx, %rax # D.45483, D.45483
je .L1640 #,
.p2align 4,,10
.p2align 3
.L1621:
movq 104(%r15), %rax # s_60->list.next, __mptr
leaq -104(%rax), %r15 #, s
cmpq $slab_caches, %rax #, __mptr
jne .L1623 #,
jmp .L1620 #
.p2align 4,,10
.p2align 3
.L1640:
subq %r12, %rax # size, D.45483
cmpq $7, %rax #, D.45483
ja .L1621 #,
testq %r15, %r15 # s
je .L1629 #,
movl 28(%r15), %eax # s_42->object_size, s_42->object_size
movq %r13, %rsi # name,
movq %r15, %rdi # s,
addl $1, 68(%r15) #, s_42->refcount
cmpl %ebx, %eax # size, s_42->object_size
cmovle %ebx, %eax # s_42->object_size,, size, D.45481
addl $7, %ebx #, __max2
andl $-8, %ebx #, __max2
movl %eax, 28(%r15) # D.45481, s_42->object_size
movl 80(%r15), %eax # s_42->inuse, s_42->inuse
cmpl %eax, %ebx # s_42->inuse, __max2
cmovl %eax, %ebx # __max2,, s_42->inuse, D.45481
movl %ebx, 80(%r15) # D.45481, s_42->inuse
call sysfs_slab_alias #
testl %eax, %eax # D.45481
je .L1629 #,
subl $1, 68(%r15) #, s_42->refcount
xorl %r15d, %r15d # s
jmp .L1629 #
.size __kmem_cache_alias, .-__kmem_cache_alias
.section .rodata.str1.8
.align 8
.LC76:
.string "\0013SLUB: Unable to allocate memory from node %d\n"
.align 8
.LC77:
.string "\0013SLUB: Allocating a useless per node structure in order to be able to continue\n"
.align 8
.LC78:
.string "Cannot create slab %s size=%lu realsize=%u order=%u offset=%u flags=%lx\n"
.text
.p2align 4,,15
.globl __kmem_cache_create
.type __kmem_cache_create, @function
__kmem_cache_create:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
pushq %r14 #
pushq %r13 #
pushq %r12 #
movq %rdi, %r12 # s, s
movq %rsi, %rdi # flags, flags
pushq %rbx #
subq $24, %rsp #,
movq %rsi, -56(%rbp) # flags, %sfp
movq 96(%r12), %rsi # s_5(D)->name, s_5(D)->name
call kmem_cache_flags.isra.63 #
movl $-1, %esi #,
movq %r12, %rdi # s,
movq %rax, 8(%r12) # D.45718, s_5(D)->flags
movl $0, 88(%r12) #, s_5(D)->reserved
call calculate_sizes #
testl %eax, %eax # D.45717
je .L1663 #,
movl disable_higher_order_debug(%rip), %r8d # disable_higher_order_debug,
movl 24(%r12), %eax # s_5(D)->size, D.45717
testl %r8d, %r8d #
jne .L1643 #,
.L1644:
movq boot_cpu_data+36(%rip), %rdx # MEM[(const long unsigned int *)&boot_cpu_data + 36B], D.45718
andb $32, %dh #, D.45718
je .L1645 #,
movq 8(%r12), %rcx # s_5(D)->flags, D.45718
movq %rcx, %rdx # D.45718, D.45718
andl $2166016, %edx #, D.45718
je .L1708 #,
.L1676:
movl $-1, %ecx #, r
#APP
# 451 "./arch/x86/include/asm/bitops.h" 1
bsrl %eax,%ecx # D.45717, r
# 0 "" 2
#NO_APP
movl %ecx, %esi # r, tmp194
shrl $31, %esi #, tmp194
addl %esi, %ecx # tmp194, D.45717
sarl %ecx # D.45717
movslq %ecx, %rsi # D.45717, min
cmpq $4, %rsi #, min
ja .L1709 #,
movl $5, %ecx #, min
.L1647:
testq %rdx, %rdx # D.45718
movq %rcx, 16(%r12) # min, MEM[(long unsigned int *)s_5(D) + 16B]
jne .L1710 #,
cmpl $4095, %eax #, D.45717
jbe .L1650 #,
movl $2, 36(%r12) #, s_5(D)->cpu_partial
.L1649:
movl $64, %esi #,
movq $node_states+16, %rdi #,
movl $1000, 184(%r12) #, s_5(D)->remote_node_defrag_ratio
call find_first_bit #
movl $64, %r14d #, node
cmpl $64, %eax #, D.45718
cmovle %eax, %r14d # D.45718,, node
cmpl $64, %r14d #, node
jne .L1664 #,
jmp .L1653 #
.p2align 4,,10
.p2align 3
.L1716:
movq kmem_cache_node(%rip), %rdi # kmem_cache_node, kmem_cache_node.801
cmpl $63, 24(%rdi) #, kmem_cache_node.801_497->size
jbe .L1711 #,
xorl %esi, %esi #
movl %r14d, %edx # node,
call new_slab #
testq %rax, %rax # page
movq %rax, %r15 #, page
je .L1712 #,
movq (%rax), %rax # MEM[(const struct page *)page_503], D.45718
shrq $39, %rax #, D.45718
andl $63, %eax #, D.45717
cmpl %eax, %r14d # D.45717, node
jne .L1713 #,
.L1657:
movq 16(%r15), %rbx # page_503->D.11432.D.11414.freelist, n
testq %rbx, %rbx # n
je .L1714 #,
movq kmem_cache_node(%rip), %rax # kmem_cache_node, kmem_cache_node.801
movl $1, %esi #,
movslq 32(%rax), %rdx # MEM[(struct kmem_cache *)kmem_cache_node.801_515 + 32B], D.45724
movq %rax, %rdi # kmem_cache_node.801,
movq (%rbx,%rdx), %rdx # *_518, D.45728
movw %si, 24(%r15) #, page_503->D.11432.D.11431.D.11429.D.11427.D.11425.inuse
movq %rbx, %rsi # n,
andb $127, 27(%r15) #,
movq %rax, -48(%rbp) # kmem_cache_node.801, %sfp
movq %rdx, 16(%r15) # D.45728, page_503->D.11432.D.11414.freelist
movslq %r14d, %rdx # node, D.45724
leaq (%rax,%rdx,8), %r13 #, D.45719
movl $204, %edx #,
movq %rbx, 192(%r13) # n, MEM[(struct kmem_cache *)_16 + 192B]
call init_object #
movq -48(%rbp), %rax # %sfp, kmem_cache_node.801
testb $1, 10(%rax) #, kmem_cache_node.801_515->flags
jne .L1715 #,
.L1659:
leaq 48(%rbx), %rax #, D.45726
xorl %ecx, %ecx #
movq $0, 8(%rbx) #, n_511->nr_partial
leaq 16(%rbx), %rdx #, D.45726
movw %cx, (%rbx) #, n_511->list_lock.D.5383.rlock.raw_lock.D.5358.head_tail
movq %rdx, 16(%rbx) # D.45726, MEM[(struct list_head *)n_511 + 16B].next
movq %rdx, 24(%rbx) # D.45726, MEM[(struct list_head *)n_511 + 16B].prev
movq $0, 32(%rbx) #, MEM[(struct atomic64_t *)n_511 + 32B].counter
movq $0, 40(%rbx) #, MEM[(struct atomic64_t *)n_511 + 40B].counter
movq %rax, 48(%rbx) # D.45726, MEM[(struct list_head *)n_511 + 48B].next
movq %rax, 56(%rbx) # D.45726, MEM[(struct list_head *)n_511 + 48B].prev
movzwl 26(%r15), %esi # *page_503, D.45730
movq 192(%r13), %rax # MEM[(struct kmem_cache *)_16 + 192B], D.45720
andw $32767, %si #, D.45730
testq %rax, %rax # D.45720
je .L1678 #,
#APP
# 86 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; incq 32(%rax) # MEM[(struct atomic64_t *)_531].counter
# 0 "" 2
#NO_APP
movzwl %si, %esi # D.45730, D.45721
#APP
# 45 "./arch/x86/include/asm/atomic64_64.h" 1
.pushsection .smp_locks,"a"
.balign 4
.long 671f - .
.popsection
671:
lock; addq %rsi,40(%rax) # D.45721, MEM[(struct atomic64_t *)_532].counter
# 0 "" 2
#NO_APP
movq 8(%rbx), %rax # n_511->nr_partial, tmp252
leaq 1(%rax), %rsi #, D.45718
movq 16(%rbx), %rax # MEM[(struct list_head *)n_511 + 16B].next, D.45726
.L1660:
movq %rsi, 8(%rbx) # D.45718, n_511->nr_partial
leaq 32(%r15), %rsi #, D.45726
movq %rsi, 8(%rax) # D.45726, _237->prev
movq %rax, 32(%r15) # D.45726, MEM[(struct list_head *)page_503 + 32B].next
movq %rdx, 40(%r15) # D.45726, MEM[(struct list_head *)page_503 + 32B].prev
movq %rsi, 16(%rbx) # D.45726, MEM[(struct list_head *)n_511 + 16B].next
.L1661:
leal 1(%r14), %ecx #, D.45717
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %ecx, %rdx # D.45717, D.45718
movl $64, %r14d #, node
call find_next_bit #
cmpl $64, %eax #, D.45718
cmovle %eax, %r14d # D.45718,, node
cmpl $64, %r14d #, node
je .L1653 #,
.L1664:
movl slab_state(%rip), %edi # slab_state,
testl %edi, %edi #
je .L1716 #,
movq kmem_cache_node(%rip), %rdi # kmem_cache_node,
movl %r14d, %edx # node,
movl $208, %esi #,
call kmem_cache_alloc_node #
testq %rax, %rax # n
je .L1672 #,
movslq %r14d, %rdx # node, node
movq %rax, 192(%r12,%rdx,8) # n, s_5(D)->node
xorl %edx, %edx #
movw %dx, (%rax) #, n_488->list_lock.D.5383.rlock.raw_lock.D.5358.head_tail
leaq 16(%rax), %rdx #, D.45726
movq %rdx, 16(%rax) # D.45726, MEM[(struct list_head *)n_488 + 16B].next
movq %rdx, 24(%rax) # D.45726, MEM[(struct list_head *)n_488 + 16B].prev
leaq 48(%rax), %rdx #, D.45726
movq $0, 8(%rax) #, n_488->nr_partial
movq $0, 32(%rax) #, MEM[(struct atomic64_t *)n_488 + 32B].counter
movq $0, 40(%rax) #, MEM[(struct atomic64_t *)n_488 + 40B].counter
movq %rdx, 48(%rax) # D.45726, MEM[(struct list_head *)n_488 + 48B].next
movq %rdx, 56(%rax) # D.45726, MEM[(struct list_head *)n_488 + 48B].prev
jmp .L1661 #
.p2align 4,,10
.p2align 3
.L1672:
movq %r12, %rdi # s,
call free_kmem_cache_nodes #
.L1663:
testq $262144, -56(%rbp) #, %sfp
jne .L1717 #,
movl $-22, %eax #, D.45717
.L1705:
addq $24, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1643:
movslq 28(%r12), %rdi # s_5(D)->object_size, D.45718
movslq %eax, %rdx # D.45717, D.45718
movl $-1, %esi #, tmp179
subq $1, %rdx #, size
movl %esi, %ecx # tmp179, bitpos
shrq $12, %rdx #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rcx # size, bitpos
# 0 "" 2
#NO_APP
subq $1, %rdi #, size
movl %esi, %edx # tmp179, bitpos
addl $1, %ecx #, D.45717
shrq $12, %rdi #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdi,%rdx # size, bitpos
# 0 "" 2
#NO_APP
addl $1, %edx #, D.45717
cmpl %edx, %ecx # D.45717, D.45717
jle .L1644 #,
andq $-68609, 8(%r12) #, s_5(D)->flags
movq %r12, %rdi # s,
movl $0, 32(%r12) #, s_5(D)->offset
call calculate_sizes #
testl %eax, %eax # D.45717
je .L1663 #,
movl 24(%r12), %eax # s_5(D)->size, D.45717
jmp .L1644 #
.p2align 4,,10
.p2align 3
.L1715:
movq %rbx, %rsi # n,
movq %rax, %rdi # kmem_cache_node.801,
call init_tracking.part.54 #
jmp .L1659 #
.p2align 4,,10
.p2align 3
.L1653:
movl $16, %esi #,
movl $32, %edi #,
call __alloc_percpu #
testq %rax, %rax # D.45728
movq %rax, (%r12) # D.45728, s_5(D)->cpu_slab
je .L1672 #,
movq cpu_possible_mask(%rip), %rbx # cpu_possible_mask, D.45725
movl $-1, %edx #, cpu
jmp .L1673 #
.p2align 4,,10
.p2align 3
.L1665:
movslq %eax, %rsi # D.45718, cpu
movq (%r12), %rcx # MEM[(struct kmem_cache_cpu * *)s_5(D)], tmp228
movl %eax, %eax # D.45718, tmp254
addq __per_cpu_offset(,%rsi,8), %rcx # __per_cpu_offset, tmp228
movq %rax, 8(%rcx) # tmp254, _543->tid
.L1673:
addl $1, %edx #, D.45717
movl $64, %esi #,
movq %rbx, %rdi # D.45725,
movslq %edx, %rdx # D.45717, D.45718
call find_next_bit #
cmpl nr_cpu_ids(%rip), %eax # nr_cpu_ids, D.45718
movl %eax, %edx # D.45718, cpu
jl .L1665 #,
cmpl $4, slab_state(%rip) #, slab_state
ja .L1718 #,
.L1674:
addq $24, %rsp #,
xorl %eax, %eax # D.45717
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1645:
movq 8(%r12), %rdx # s_5(D)->flags, D.45718
andl $2166016, %edx #, D.45718
jmp .L1676 #
.L1709:
movl $10, %ecx #, min
cmpq $10, %rsi #, min
cmovbe %rsi, %rcx # min,, min
jmp .L1647 #
.p2align 4,,10
.p2align 3
.L1650:
cmpl $1023, %eax #, D.45717
jle .L1651 #,
movl $6, 36(%r12) #, s_5(D)->cpu_partial
jmp .L1649 #
.p2align 4,,10
.p2align 3
.L1651:
cmpl $256, %eax #, D.45717
movl $13, %edx #, tmp245
movl $30, %eax #, tmp246
cmovl %eax, %edx # tmp246,, tmp245
movl %edx, 36(%r12) # tmp245, s_5(D)->cpu_partial
jmp .L1649 #
.p2align 4,,10
.p2align 3
.L1708:
orq $1073741824, %rcx #, tmp190
movq %rcx, 8(%r12) # tmp190, s_5(D)->flags
jmp .L1676 #
.L1718:
movq %r12, %rdi # s,
call sysfs_slab_add #
testl %eax, %eax # err
movl %eax, -48(%rbp) # err, %sfp
je .L1674 #,
movl $32, %r8d #,
movl $1, %ecx #,
movq %r12, %rdx # s,
movq $flush_cpu_slab, %rsi #,
movl $64, %ebx #, node
movl $64, %r14d #, tmp248
movq $has_cpu_slab, %rdi #,
call on_each_cpu_cond #
movl $64, %esi #,
movq $node_states+16, %rdi #,
call find_first_bit #
cmpl $64, %eax #, D.45718
cmovle %eax, %ebx # D.45718,, node
cmpl $64, %ebx #, node
jne .L1703 #,
jmp .L1670 #
.p2align 4,,10
.p2align 3
.L1719:
movq 192(%r15), %rax # MEM[(struct kmem_cache *)_292 + 192B], D.45720
movq 32(%rax), %rax # MEM[(volatile long int *)_19 + 32B], D.45721
testq %rax, %rax # D.45721
jne .L1681 #,
addl $1, %ebx #, D.45717
movl $64, %esi #,
movq $node_states+16, %rdi #,
movslq %ebx, %rdx # D.45717, D.45718
call find_next_bit #
cmpl $64, %eax #, D.45718
movl %eax, %ebx # D.45718, node
cmovg %r14d, %ebx # node,, tmp248, node
cmpl $64, %ebx #, node
je .L1670 #,
.L1703:
movslq %ebx, %rax # node, D.45724
movq %r12, %rdi # s,
leaq (%r12,%rax,8), %r15 #, D.45719
movq 192(%r15), %r13 # MEM[(struct kmem_cache *)_292 + 192B], D.45720
movq %r13, %rsi # D.45720,
call free_partial #
cmpq $0, 8(%r13) #, _17->nr_partial
je .L1719 #,
.L1681:
movl -48(%rbp), %eax # %sfp, D.45717
jmp .L1705 #
.L1670:
movq (%r12), %rdi # s_5(D)->cpu_slab,
call free_percpu #
movq %r12, %rdi # s,
call free_kmem_cache_nodes #
movl -48(%rbp), %eax # %sfp, D.45717
jmp .L1705 #
.L1714:
#APP
# 2909 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 2909, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.L1678:
movq %rdx, %rax # D.45726, D.45726
movl $1, %esi #, D.45718
jmp .L1660 #
.L1711:
#APP
# 2898 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 2898, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.L1712:
#APP
# 2902 "mm/slub.c" 1
1: ud2
.pushsection __bug_table,"a"
2: .long 1b - 2b, .LC2 - 2b #
.word 2902, 0 #
.org 2b+12 #
.popsection
# 0 "" 2
#NO_APP
.L1713:
movl %r14d, %esi # node,
movq $.LC76, %rdi #,
xorl %eax, %eax #
call printk #
movq $.LC77, %rdi #,
xorl %eax, %eax #
call printk #
jmp .L1657 #
.L1717:
movq -56(%rbp), %rax # %sfp, flags
movq $.LC78, %rdi #,
movl 24(%r12), %ecx # s_5(D)->size, D.45717
movq 40(%r12), %r8 # MEM[(struct kmem_cache *)s_5(D) + 40B], MEM[(struct kmem_cache *)s_5(D) + 40B]
movl 32(%r12), %r9d # s_5(D)->offset, s_5(D)->offset
movq 96(%r12), %rsi # s_5(D)->name, s_5(D)->name
movq %rax, (%rsp) # flags,
xorl %eax, %eax #
movslq %ecx, %rdx # D.45717, D.45718
shrq $16, %r8 #,
call panic #
.L1710:
movl $0, 36(%r12) #, s_5(D)->cpu_partial
jmp .L1649 #
.size __kmem_cache_create, .-__kmem_cache_create
.p2align 4,,15
.globl __kmalloc_track_caller
.type __kmalloc_track_caller, @function
__kmalloc_track_caller:
pushq %rbp #
cmpq $8192, %rdi #, size
movq %rsp, %rbp #,
pushq %r15 #
movl %esi, %r15d # gfpflags, gfpflags
pushq %r14 #
pushq %r13 #
pushq %r12 #
pushq %rbx #
ja .L1739 #,
movq %rdx, %r13 # caller, caller
call kmalloc_slab #
cmpq $16, %rax #, s
movq %rax, %r14 #, s
jbe .L1735 #,
.L1729:
movq (%r14), %r8 # s_11->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_98->tid, __o2
movq (%r8), %r12 # c_98->freelist, ret
movq 16(%r8), %rax # c_98->page, page
testq %r12, %r12 # ret
je .L1725 #,
testq %rax, %rax # page
je .L1725 #,
movslq 32(%r14), %rax # MEM[(struct kmem_cache *)s_11 + 32B], D.45748
leaq 1(%rdx), %rcx #, D.45750
movq (%r14), %r8 # s_11->cpu_slab, D.45746
movq (%r12,%rax), %rbx # *_112, D.45744
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%r8),%rsi # _115->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%r8) # _115->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1729 #,
movslq 32(%r14), %rax # MEM[(const struct kmem_cache *)s_11 + 32B], D.45748
andl $32768, %r15d #, gfpflags
prefetcht0 (%rbx,%rax) #
jne .L1727 #,
.L1738:
movq %r12, %rax # ret, D.45744
.L1735:
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1725:
movl %r15d, %esi # gfpflags,
movq %r13, %rcx # caller,
movl $-1, %edx #,
movq %r14, %rdi # s,
call __slab_alloc #
andl $32768, %r15d #, gfpflags
movq %rax, %r12 #, ret
je .L1738 #,
testq %rax, %rax # ret
je .L1731 #,
.L1727:
movslq 28(%r14), %rdx # s_11->object_size, D.45750
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1738 #
.L1739:
leaq -1(%rdi), %rdx #, size
orl $-1, %eax #, bitpos
shrq $12, %rdx #, size
#APP
# 487 "./arch/x86/include/asm/bitops.h" 1
bsrq %rdx,%rax # size, bitpos
# 0 "" 2
#NO_APP
leal 1(%rax), %edx #, D.45745
call kmalloc_order #
jmp .L1735 #
.L1731:
xorl %eax, %eax # D.45744
jmp .L1735 #
.size __kmalloc_track_caller, .-__kmalloc_track_caller
.p2align 4,,15
.globl __kmalloc_node_track_caller
.type __kmalloc_node_track_caller, @function
__kmalloc_node_track_caller:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movl %esi, %r15d # gfpflags, gfpflags
pushq %r14 #
movl %edx, %r14d # node, node
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $8, %rsp #,
cmpq $8192, %rdi #, size
movq %rcx, -48(%rbp) # caller, %sfp
ja .L1761 #,
call kmalloc_slab #
cmpq $16, %rax #, s
movq %rax, %r13 #, s
jbe .L1758 #,
.L1749:
movq 0(%r13), %r8 # s_80->cpu_slab, tcp_ptr__
#APP
# 2428 "mm/slub.c" 1
add %gs:this_cpu_off, %r8 # this_cpu_off, tcp_ptr__
# 0 "" 2
#NO_APP
movq 8(%r8), %rdx # c_93->tid, __o2
movq (%r8), %r12 # c_93->freelist, ret
movq 16(%r8), %rax # c_93->page, page
testq %r12, %r12 # ret
je .L1745 #,
testq %rax, %rax # page
je .L1745 #,
cmpl $-1, %r14d #, node
je .L1746 #,
movq (%rax), %rax # MEM[(const struct page *)page_96], D.45764
shrq $39, %rax #, D.45764
andl $63, %eax #, D.45765
cmpl %eax, %r14d # D.45765, node
je .L1746 #,
.L1745:
movq -48(%rbp), %rcx # %sfp,
movl %r15d, %esi # gfpflags,
movl %r14d, %edx # node,
movq %r13, %rdi # s,
call __slab_alloc #
andl $32768, %r15d #, gfpflags
movq %rax, %r12 #, ret
jne .L1744 #,
.L1760:
movq %r12, %rax # ret, D.45762
.L1758:
addq $8, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.p2align 4,,10
.p2align 3
.L1746:
movslq 32(%r13), %rax # MEM[(struct kmem_cache *)s_80 + 32B], D.45766
leaq 1(%rdx), %rcx #, D.45764
movq 0(%r13), %rdi # s_80->cpu_slab, D.45763
movq (%r12,%rax), %rbx # *_111, D.45762
movq %r12, %rax # ret, ret
#APP
# 2461 "mm/slub.c" 1
661:
leaq (%rdi),%rsi # _114->freelist
call this_cpu_cmpxchg16b_emu
662:
.pushsection .altinstructions,"a"
.long 661b - .
.long 6631f - .
.word (4*32+13)
.byte 662b-661b
.byte 6641f-6631f
.popsection
.pushsection .discard,"aw",@progbits
.byte 0xff + (6641f-6631f) - (662b-661b)
.popsection
.pushsection .altinstr_replacement, "ax"
6631:
cmpxchg16b %gs:(%rdi) # _114->freelist
setz %al # pdcrb_ret__
6641:
.popsection
# 0 "" 2
#NO_APP
testb %al, %al # pdcrb_ret__
je .L1749 #,
movslq 32(%r13), %rax # MEM[(const struct kmem_cache *)s_80 + 32B], D.45766
andl $32768, %r15d #, gfpflags
prefetcht0 (%rbx,%rax) #
je .L1760 #,
.L1747:
movslq 28(%r13), %rdx # s_80->object_size, D.45764
xorl %esi, %esi #
movq %r12, %rdi # ret,
call memset #
jmp .L1760 #
.L1761:
call kmalloc_large_node #
.p2align 4,,8
jmp .L1758 #
.L1744:
testq %rax, %rax # ret
.p2align 4,,5
jne .L1747 #,
xorl %eax, %eax # D.45762
.p2align 4,,6
jmp .L1758 #
.size __kmalloc_node_track_caller, .-__kmalloc_node_track_caller
.p2align 4,,15
.globl sysfs_slab_remove
.type sysfs_slab_remove, @function
sysfs_slab_remove:
cmpl $4, slab_state(%rip) #, slab_state
ja .L1767 #,
ret
.p2align 4,,10
.p2align 3
.L1767:
pushq %rbp #
movl $1, %esi #,
movq %rsp, %rbp #,
pushq %rbx #
leaq 120(%rdi), %rbx #, D.45778
movq %rbx, %rdi # D.45778,
call kobject_uevent #
movq %rbx, %rdi # D.45778,
call kobject_del #
movq %rbx, %rdi # D.45778,
call kobject_put #
popq %rbx #
popq %rbp #
ret
.size sysfs_slab_remove, .-sysfs_slab_remove
.p2align 4,,15
.globl get_slabinfo
.type get_slabinfo, @function
get_slabinfo:
pushq %rbp #
movq %rsp, %rbp #,
pushq %r15 #
movl $64, %r15d #, node
pushq %r14 #
movq %rdi, %r14 # s, s
movq $node_states+8, %rdi #,
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $8, %rsp #,
movq %rsi, -48(%rbp) # sinfo, %sfp
movl $64, %esi #,
call find_first_bit #
cmpl $64, %eax #, D.45781
cmovle %eax, %r15d # D.45781,, node
cmpl $64, %r15d #, node
je .L1773 #,
xorl %r13d, %r13d # nr_free
xorl %r12d, %r12d # nr_objs
xorl %ebx, %ebx # nr_slabs
.p2align 4,,10
.p2align 3
.L1772:
movslq %r15d, %rax # node, node
movq 192(%r14,%rax,8), %rdi # s_12(D)->node, D.45783
testq %rdi, %rdi # D.45783
je .L1770 #,
movq 32(%rdi), %rax # MEM[(volatile long int *)_34 + 32B], D.45784
movq $count_free, %rsi #,
addq %rax, %rbx # D.45784, nr_slabs
movq 40(%rdi), %rax # MEM[(volatile long int *)_34 + 40B], D.45784
addq %rax, %r12 # D.45784, nr_objs
call count_partial #
addq %rax, %r13 # D.45781, nr_free
.L1770:
leal 1(%r15), %edx #, D.45785
movl $64, %esi #,
movq $node_states+8, %rdi #,
movslq %edx, %rdx # D.45785, D.45781
movl $64, %r15d #, node
call find_next_bit #
cmpl $64, %eax #, D.45781
cmovle %eax, %r15d # D.45781,, node
cmpl $64, %r15d #, node
jne .L1772 #,
movq %r12, %rax # nr_objs, D.45781
subq %r13, %rax # nr_free, D.45781
.L1769:
movq -48(%rbp), %rcx # %sfp, sinfo
movq %rax, (%rcx) # D.45781, sinfo_22(D)->active_objs
movq %r12, 8(%rcx) # nr_objs, sinfo_22(D)->num_objs
movq %rbx, 16(%rcx) # nr_slabs, sinfo_22(D)->active_slabs
movq %rbx, 24(%rcx) # nr_slabs, sinfo_22(D)->num_slabs
movzwl 40(%r14), %eax # MEM[(struct kmem_cache *)s_12(D) + 40B], tmp93
movl %eax, 52(%rcx) # tmp93, sinfo_22(D)->objects_per_slab
movq 40(%r14), %rax # MEM[(struct kmem_cache *)s_12(D) + 40B], D.45781
shrq $16, %rax #, D.45781
movl %eax, 56(%rcx) # D.45781, sinfo_22(D)->cache_order
addq $8, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %r14 #
popq %r15 #
popq %rbp #
ret
.L1773:
xorl %eax, %eax # D.45781
xorl %r12d, %r12d # nr_objs
xorl %ebx, %ebx # nr_slabs
jmp .L1769 #
.size get_slabinfo, .-get_slabinfo
.p2align 4,,15
.globl slabinfo_show_stats
.type slabinfo_show_stats, @function
slabinfo_show_stats:
pushq %rbp #
movq %rsp, %rbp #,
popq %rbp #
ret
.size slabinfo_show_stats, .-slabinfo_show_stats
.p2align 4,,15
.globl slabinfo_write
.type slabinfo_write, @function
slabinfo_write:
pushq %rbp #
movq $-5, %rax #,
movq %rsp, %rbp #,
popq %rbp #
ret
.size slabinfo_write, .-slabinfo_write
.section .data.unlikely,"aw",@progbits
.type __warned.31916, @object
.size __warned.31916, 1
__warned.31916:
.zero 1
.type __warned.31911, @object
.size __warned.31911, 1
__warned.31911:
.zero 1
.section .init.data,"aw",@progbits
.align 32
.type boot_kmem_cache.31628, @object
.size boot_kmem_cache.31628, 704
boot_kmem_cache.31628:
.zero 704
.align 32
.type boot_kmem_cache_node.31629, @object
.size boot_kmem_cache_node.31629, 704
boot_kmem_cache_node.31629:
.zero 704
.section .rodata
.align 16
.type __func__.30346, @object
.size __func__.30346, 19
__func__.30346:
.string "slab_out_of_memory"
.data
.align 32
.type slub_oom_rs.30343, @object
.size slub_oom_rs.30343, 32
slub_oom_rs.30343:
# lock:
# raw_lock:
# <anonymous>:
# head_tail:
.value 0
# interval:
.zero 2
.long 500
# burst:
.long 10
.zero 20
.section .initcall6.init,"aw",@progbits
.align 8
.type __initcall_slab_sysfs_init6, @object
.size __initcall_slab_sysfs_init6, 8
__initcall_slab_sysfs_init6:
.quad slab_sysfs_init
.local alias_list
.comm alias_list,8,8
.local slab_kset
.comm slab_kset,8,8
.section .rodata
.align 16
.type slab_uevent_ops, @object
.size slab_uevent_ops, 24
slab_uevent_ops:
# filter:
.quad uevent_filter
.zero 16
.data
.align 32
.type slab_ktype, @object
.size slab_ktype, 40
slab_ktype:
# release:
.quad kmem_cache_release
# sysfs_ops:
.quad slab_sysfs_ops
.zero 24
.section .rodata
.align 16
.type slab_sysfs_ops, @object
.size slab_sysfs_ops, 16
slab_sysfs_ops:
# show:
.quad slab_attr_show
# store:
.quad slab_attr_store
.data
.align 32
.type slab_attr_group, @object
.size slab_attr_group, 32
slab_attr_group:
# attrs:
.zero 16
.quad slab_attrs
.zero 8
.align 32
.type slab_attrs, @object
.size slab_attrs, 256
slab_attrs:
.quad slab_size_attr
.quad object_size_attr
.quad objs_per_slab_attr
.quad order_attr
.quad min_partial_attr
.quad cpu_partial_attr
.quad objects_attr
.quad objects_partial_attr
.quad partial_attr
.quad cpu_slabs_attr
.quad ctor_attr
.quad aliases_attr
.quad align_attr
.quad hwcache_align_attr
.quad reclaim_account_attr
.quad destroy_by_rcu_attr
.quad shrink_attr
.quad reserved_attr
.quad slabs_cpu_partial_attr
.quad total_objects_attr
.quad slabs_attr
.quad sanity_checks_attr
.quad trace_attr
.quad red_zone_attr
.quad poison_attr
.quad store_user_attr
.quad validate_attr
.quad alloc_calls_attr
.quad free_calls_attr
.quad cache_dma_attr
.quad remote_node_defrag_ratio_attr
.quad 0
.section .rodata.str1.1
.LC79:
.string "remote_node_defrag_ratio"
.data
.align 32
.type remote_node_defrag_ratio_attr, @object
.size remote_node_defrag_ratio_attr, 32
remote_node_defrag_ratio_attr:
# attr:
# name:
.quad .LC79
# mode:
.value 384
.zero 6
# show:
.quad remote_node_defrag_ratio_show
# store:
.quad remote_node_defrag_ratio_store
.section .rodata.str1.1
.LC80:
.string "shrink"
.data
.align 32
.type shrink_attr, @object
.size shrink_attr, 32
shrink_attr:
# attr:
# name:
.quad .LC80
# mode:
.value 384
.zero 6
# show:
.quad shrink_show
# store:
.quad shrink_store
.section .rodata.str1.1
.LC81:
.string "free_calls"
.data
.align 32
.type free_calls_attr, @object
.size free_calls_attr, 32
free_calls_attr:
# attr:
# name:
.quad .LC81
# mode:
.value 256
.zero 6
# show:
.quad free_calls_show
# store:
.quad 0
.section .rodata.str1.1
.LC82:
.string "alloc_calls"
.data
.align 32
.type alloc_calls_attr, @object
.size alloc_calls_attr, 32
alloc_calls_attr:
# attr:
# name:
.quad .LC82
# mode:
.value 256
.zero 6
# show:
.quad alloc_calls_show
# store:
.quad 0
.section .rodata.str1.1
.LC83:
.string "validate"
.data
.align 32
.type validate_attr, @object
.size validate_attr, 32
validate_attr:
# attr:
# name:
.quad .LC83
# mode:
.value 384
.zero 6
# show:
.quad validate_show
# store:
.quad validate_store
.section .rodata.str1.1
.LC84:
.string "store_user"
.data
.align 32
.type store_user_attr, @object
.size store_user_attr, 32
store_user_attr:
# attr:
# name:
.quad .LC84
# mode:
.value 384
.zero 6
# show:
.quad store_user_show
# store:
.quad store_user_store
.section .rodata.str1.1
.LC85:
.string "poison"
.data
.align 32
.type poison_attr, @object
.size poison_attr, 32
poison_attr:
# attr:
# name:
.quad .LC85
# mode:
.value 384
.zero 6
# show:
.quad poison_show
# store:
.quad poison_store
.section .rodata.str1.1
.LC86:
.string "red_zone"
.data
.align 32
.type red_zone_attr, @object
.size red_zone_attr, 32
red_zone_attr:
# attr:
# name:
.quad .LC86
# mode:
.value 384
.zero 6
# show:
.quad red_zone_show
# store:
.quad red_zone_store
.section .rodata.str1.1
.LC87:
.string "trace"
.data
.align 32
.type trace_attr, @object
.size trace_attr, 32
trace_attr:
# attr:
# name:
.quad .LC87
# mode:
.value 384
.zero 6
# show:
.quad trace_show
# store:
.quad trace_store
.section .rodata.str1.1
.LC88:
.string "sanity_checks"
.data
.align 32
.type sanity_checks_attr, @object
.size sanity_checks_attr, 32
sanity_checks_attr:
# attr:
# name:
.quad .LC88
# mode:
.value 384
.zero 6
# show:
.quad sanity_checks_show
# store:
.quad sanity_checks_store
.section .rodata.str1.1
.LC89:
.string "total_objects"
.data
.align 32
.type total_objects_attr, @object
.size total_objects_attr, 32
total_objects_attr:
# attr:
# name:
.quad .LC89
# mode:
.value 256
.zero 6
# show:
.quad total_objects_show
# store:
.quad 0
.section .rodata.str1.1
.LC90:
.string "slabs"
.data
.align 32
.type slabs_attr, @object
.size slabs_attr, 32
slabs_attr:
# attr:
# name:
.quad .LC90
# mode:
.value 256
.zero 6
# show:
.quad slabs_show
# store:
.quad 0
.section .rodata.str1.1
.LC91:
.string "reserved"
.data
.align 32
.type reserved_attr, @object
.size reserved_attr, 32
reserved_attr:
# attr:
# name:
.quad .LC91
# mode:
.value 256
.zero 6
# show:
.quad reserved_show
# store:
.quad 0
.section .rodata.str1.1
.LC92:
.string "destroy_by_rcu"
.data
.align 32
.type destroy_by_rcu_attr, @object
.size destroy_by_rcu_attr, 32
destroy_by_rcu_attr:
# attr:
# name:
.quad .LC92
# mode:
.value 256
.zero 6
# show:
.quad destroy_by_rcu_show
# store:
.quad 0
.section .rodata.str1.1
.LC93:
.string "cache_dma"
.data
.align 32
.type cache_dma_attr, @object
.size cache_dma_attr, 32
cache_dma_attr:
# attr:
# name:
.quad .LC93
# mode:
.value 256
.zero 6
# show:
.quad cache_dma_show
# store:
.quad 0
.section .rodata.str1.1
.LC94:
.string "hwcache_align"
.data
.align 32
.type hwcache_align_attr, @object
.size hwcache_align_attr, 32
hwcache_align_attr:
# attr:
# name:
.quad .LC94
# mode:
.value 256
.zero 6
# show:
.quad hwcache_align_show
# store:
.quad 0
.section .rodata.str1.1
.LC95:
.string "reclaim_account"
.data
.align 32
.type reclaim_account_attr, @object
.size reclaim_account_attr, 32
reclaim_account_attr:
# attr:
# name:
.quad .LC95
# mode:
.value 384
.zero 6
# show:
.quad reclaim_account_show
# store:
.quad reclaim_account_store
.section .rodata.str1.1
.LC96:
.string "slabs_cpu_partial"
.data
.align 32
.type slabs_cpu_partial_attr, @object
.size slabs_cpu_partial_attr, 32
slabs_cpu_partial_attr:
# attr:
# name:
.quad .LC96
# mode:
.value 256
.zero 6
# show:
.quad slabs_cpu_partial_show
# store:
.quad 0
.section .rodata.str1.1
.LC97:
.string "objects_partial"
.data
.align 32
.type objects_partial_attr, @object
.size objects_partial_attr, 32
objects_partial_attr:
# attr:
# name:
.quad .LC97
# mode:
.value 256
.zero 6
# show:
.quad objects_partial_show
# store:
.quad 0
.section .rodata.str1.1
.LC98:
.string "objects"
.data
.align 32
.type objects_attr, @object
.size objects_attr, 32
objects_attr:
# attr:
# name:
.quad .LC98
# mode:
.value 256
.zero 6
# show:
.quad objects_show
# store:
.quad 0
.section .rodata.str1.1
.LC99:
.string "cpu_slabs"
.data
.align 32
.type cpu_slabs_attr, @object
.size cpu_slabs_attr, 32
cpu_slabs_attr:
# attr:
# name:
.quad .LC99
# mode:
.value 256
.zero 6
# show:
.quad cpu_slabs_show
# store:
.quad 0
.section .rodata.str1.1
.LC100:
.string "partial"
.data
.align 32
.type partial_attr, @object
.size partial_attr, 32
partial_attr:
# attr:
# name:
.quad .LC100
# mode:
.value 256
.zero 6
# show:
.quad partial_show
# store:
.quad 0
.section .rodata.str1.1
.LC101:
.string "aliases"
.data
.align 32
.type aliases_attr, @object
.size aliases_attr, 32
aliases_attr:
# attr:
# name:
.quad .LC101
# mode:
.value 256
.zero 6
# show:
.quad aliases_show
# store:
.quad 0
.section .rodata.str1.1
.LC102:
.string "ctor"
.data
.align 32
.type ctor_attr, @object
.size ctor_attr, 32
ctor_attr:
# attr:
# name:
.quad .LC102
# mode:
.value 256
.zero 6
# show:
.quad ctor_show
# store:
.quad 0
.section .rodata.str1.1
.LC103:
.string "cpu_partial"
.data
.align 32
.type cpu_partial_attr, @object
.size cpu_partial_attr, 32
cpu_partial_attr:
# attr:
# name:
.quad .LC103
# mode:
.value 384
.zero 6
# show:
.quad cpu_partial_show
# store:
.quad cpu_partial_store
.section .rodata.str1.1
.LC104:
.string "min_partial"
.data
.align 32
.type min_partial_attr, @object
.size min_partial_attr, 32
min_partial_attr:
# attr:
# name:
.quad .LC104
# mode:
.value 384
.zero 6
# show:
.quad min_partial_show
# store:
.quad min_partial_store
.section .rodata.str1.1
.LC105:
.string "order"
.data
.align 32
.type order_attr, @object
.size order_attr, 32
order_attr:
# attr:
# name:
.quad .LC105
# mode:
.value 384
.zero 6
# show:
.quad order_show
# store:
.quad order_store
.section .rodata.str1.1
.LC106:
.string "objs_per_slab"
.data
.align 32
.type objs_per_slab_attr, @object
.size objs_per_slab_attr, 32
objs_per_slab_attr:
# attr:
# name:
.quad .LC106
# mode:
.value 256
.zero 6
# show:
.quad objs_per_slab_show
# store:
.quad 0
.section .rodata.str1.1
.LC107:
.string "object_size"
.data
.align 32
.type object_size_attr, @object
.size object_size_attr, 32
object_size_attr:
# attr:
# name:
.quad .LC107
# mode:
.value 256
.zero 6
# show:
.quad object_size_show
# store:
.quad 0
.section .rodata.str1.1
.LC108:
.string "align"
.data
.align 32
.type align_attr, @object
.size align_attr, 32
align_attr:
# attr:
# name:
.quad .LC108
# mode:
.value 256
.zero 6
# show:
.quad align_show
# store:
.quad 0
.section .rodata.str1.1
.LC109:
.string "slab_size"
.data
.align 32
.type slab_size_attr, @object
.size slab_size_attr, 32
slab_size_attr:
# attr:
# name:
.quad .LC109
# mode:
.value 256
.zero 6
# show:
.quad slab_size_show
# store:
.quad 0
.globl __ksymtab_kfree
.section ___ksymtab+kfree,"a",@progbits
.align 16
.type __ksymtab_kfree, @object
.size __ksymtab_kfree, 16
__ksymtab_kfree:
# value:
.quad kfree
# name:
.quad __kstrtab_kfree
.section __ksymtab_strings,"a",@progbits
.type __kstrtab_kfree, @object
.size __kstrtab_kfree, 6
__kstrtab_kfree:
.string "kfree"
.section ___kcrctab+kfree,"a",@progbits
.align 8
.type __kcrctab_kfree, @object
.size __kcrctab_kfree, 8
__kcrctab_kfree:
.quad __crc_kfree
.globl __ksymtab_ksize
.section ___ksymtab+ksize,"a",@progbits
.align 16
.type __ksymtab_ksize, @object
.size __ksymtab_ksize, 16
__ksymtab_ksize:
# value:
.quad ksize
# name:
.quad __kstrtab_ksize
.section __ksymtab_strings
.type __kstrtab_ksize, @object
.size __kstrtab_ksize, 6
__kstrtab_ksize:
.string "ksize"
.section ___kcrctab+ksize,"a",@progbits
.align 8
.type __kcrctab_ksize, @object
.size __kcrctab_ksize, 8
__kcrctab_ksize:
.quad __crc_ksize
.globl __ksymtab___kmalloc_node
.section ___ksymtab+__kmalloc_node,"a",@progbits
.align 16
.type __ksymtab___kmalloc_node, @object
.size __ksymtab___kmalloc_node, 16
__ksymtab___kmalloc_node:
# value:
.quad __kmalloc_node
# name:
.quad __kstrtab___kmalloc_node
.section __ksymtab_strings
.type __kstrtab___kmalloc_node, @object
.size __kstrtab___kmalloc_node, 15
__kstrtab___kmalloc_node:
.string "__kmalloc_node"
.section ___kcrctab+__kmalloc_node,"a",@progbits
.align 8
.type __kcrctab___kmalloc_node, @object
.size __kcrctab___kmalloc_node, 8
__kcrctab___kmalloc_node:
.quad __crc___kmalloc_node
.globl __ksymtab___kmalloc
.section ___ksymtab+__kmalloc,"a",@progbits
.align 16
.type __ksymtab___kmalloc, @object
.size __ksymtab___kmalloc, 16
__ksymtab___kmalloc:
# value:
.quad __kmalloc
# name:
.quad __kstrtab___kmalloc
.section __ksymtab_strings
.type __kstrtab___kmalloc, @object
.size __kstrtab___kmalloc, 10
__kstrtab___kmalloc:
.string "__kmalloc"
.section ___kcrctab+__kmalloc,"a",@progbits
.align 8
.type __kcrctab___kmalloc, @object
.size __kcrctab___kmalloc, 8
__kcrctab___kmalloc:
.quad __crc___kmalloc
.section .init.setup,"aw",@progbits
.align 8
.type __setup_setup_slub_nomerge, @object
.size __setup_setup_slub_nomerge, 24
__setup_setup_slub_nomerge:
# str:
.quad __setup_str_setup_slub_nomerge
# setup_func:
.quad setup_slub_nomerge
# early:
.long 0
.zero 4
.section .init.rodata,"a",@progbits
.type __setup_str_setup_slub_nomerge, @object
.size __setup_str_setup_slub_nomerge, 13
__setup_str_setup_slub_nomerge:
.string "slub_nomerge"
.section .init.setup
.align 8
.type __setup_setup_slub_min_objects, @object
.size __setup_setup_slub_min_objects, 24
__setup_setup_slub_min_objects:
# str:
.quad __setup_str_setup_slub_min_objects
# setup_func:
.quad setup_slub_min_objects
# early:
.long 0
.zero 4
.section .init.rodata
.type __setup_str_setup_slub_min_objects, @object
.size __setup_str_setup_slub_min_objects, 18
__setup_str_setup_slub_min_objects:
.string "slub_min_objects="
.section .init.setup
.align 8
.type __setup_setup_slub_max_order, @object
.size __setup_setup_slub_max_order, 24
__setup_setup_slub_max_order:
# str:
.quad __setup_str_setup_slub_max_order
# setup_func:
.quad setup_slub_max_order
# early:
.long 0
.zero 4
.section .init.rodata
.type __setup_str_setup_slub_max_order, @object
.size __setup_str_setup_slub_max_order, 16
__setup_str_setup_slub_max_order:
.string "slub_max_order="
.section .init.setup
.align 8
.type __setup_setup_slub_min_order, @object
.size __setup_setup_slub_min_order, 24
__setup_setup_slub_min_order:
# str:
.quad __setup_str_setup_slub_min_order
# setup_func:
.quad setup_slub_min_order
# early:
.long 0
.zero 4
.section .init.rodata
.type __setup_str_setup_slub_min_order, @object
.size __setup_str_setup_slub_min_order, 16
__setup_str_setup_slub_min_order:
.string "slub_min_order="
.local kmem_cache_node
.comm kmem_cache_node,8,8
.local slub_nomerge
.comm slub_nomerge,4,4
.local slub_min_objects
.comm slub_min_objects,4,4
.data
.align 4
.type slub_max_order, @object
.size slub_max_order, 4
slub_max_order:
.long 3
.local slub_min_order
.comm slub_min_order,4,4
.globl __ksymtab_kmem_cache_free
.section ___ksymtab+kmem_cache_free,"a",@progbits
.align 16
.type __ksymtab_kmem_cache_free, @object
.size __ksymtab_kmem_cache_free, 16
__ksymtab_kmem_cache_free:
# value:
.quad kmem_cache_free
# name:
.quad __kstrtab_kmem_cache_free
.section __ksymtab_strings
.type __kstrtab_kmem_cache_free, @object
.size __kstrtab_kmem_cache_free, 16
__kstrtab_kmem_cache_free:
.string "kmem_cache_free"
.section ___kcrctab+kmem_cache_free,"a",@progbits
.align 8
.type __kcrctab_kmem_cache_free, @object
.size __kcrctab_kmem_cache_free, 8
__kcrctab_kmem_cache_free:
.quad __crc_kmem_cache_free
.globl __ksymtab_kmem_cache_alloc_node
.section ___ksymtab+kmem_cache_alloc_node,"a",@progbits
.align 16
.type __ksymtab_kmem_cache_alloc_node, @object
.size __ksymtab_kmem_cache_alloc_node, 16
__ksymtab_kmem_cache_alloc_node:
# value:
.quad kmem_cache_alloc_node
# name:
.quad __kstrtab_kmem_cache_alloc_node
.section __ksymtab_strings
.type __kstrtab_kmem_cache_alloc_node, @object
.size __kstrtab_kmem_cache_alloc_node, 22
__kstrtab_kmem_cache_alloc_node:
.string "kmem_cache_alloc_node"
.section ___kcrctab+kmem_cache_alloc_node,"a",@progbits
.align 8
.type __kcrctab_kmem_cache_alloc_node, @object
.size __kcrctab_kmem_cache_alloc_node, 8
__kcrctab_kmem_cache_alloc_node:
.quad __crc_kmem_cache_alloc_node
.globl __ksymtab_kmem_cache_alloc
.section ___ksymtab+kmem_cache_alloc,"a",@progbits
.align 16
.type __ksymtab_kmem_cache_alloc, @object
.size __ksymtab_kmem_cache_alloc, 16
__ksymtab_kmem_cache_alloc:
# value:
.quad kmem_cache_alloc
# name:
.quad __kstrtab_kmem_cache_alloc
.section __ksymtab_strings
.type __kstrtab_kmem_cache_alloc, @object
.size __kstrtab_kmem_cache_alloc, 17
__kstrtab_kmem_cache_alloc:
.string "kmem_cache_alloc"
.section ___kcrctab+kmem_cache_alloc,"a",@progbits
.align 8
.type __kcrctab_kmem_cache_alloc, @object
.size __kcrctab_kmem_cache_alloc, 8
__kcrctab_kmem_cache_alloc:
.quad __crc_kmem_cache_alloc
.section .init.setup
.align 8
.type __setup_setup_slub_debug, @object
.size __setup_setup_slub_debug, 24
__setup_setup_slub_debug:
# str:
.quad __setup_str_setup_slub_debug
# setup_func:
.quad setup_slub_debug
# early:
.long 0
.zero 4
.section .init.rodata
.type __setup_str_setup_slub_debug, @object
.size __setup_str_setup_slub_debug, 11
__setup_str_setup_slub_debug:
.string "slub_debug"
.local disable_higher_order_debug
.comm disable_higher_order_debug,4,4
.local slub_debug_slabs
.comm slub_debug_slabs,8,8
.local slub_debug
.comm slub_debug,4,4
.data
.align 16
.type slab_notifier, @object
.size slab_notifier, 24
slab_notifier:
# notifier_call:
.quad slab_cpuup_callback
.zero 16
.weak __crc_kmem_cache_alloc
.weak __crc_kmem_cache_alloc_node
.weak __crc_kmem_cache_free
.weak __crc___kmalloc
.weak __crc___kmalloc_node
.weak __crc_ksize
.weak __crc_kfree
.ident "GCC: (Gentoo 4.8.3 p1.1, pie-0.5.9) 4.8.3"
.section .note.GNU-stack,"",@progbits
next reply other threads:[~2014-09-24 16:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 16:44 Marcin Gibula [this message]
2014-09-24 20:18 ` 3.16.1 - general protection fault Dr. David Alan Gilbert
2014-09-30 14:50 ` Dr. David Alan Gilbert
2014-10-01 8:09 ` Marcin Gibula
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGKO+35+H3MmkaN1m_PfHi0XhbRvtnSBqm3PDmOhs5YBmAZ1jg@mail.gmail.com \
--to=m.gibula@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.