3.16.1 - general protection fault

Marcin Gibula
2014-09-24T16:44:13Z

[-- 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