Re: [RFC PATCH v2] iov_iter: Convert iterate*() to inline funcs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>         _copy_from_iter                          inc 0x36e -> 0x395 +0x27

Here a disassembly of _copy_from_iter() from unpatched and patched, marked up for
the different iterator-type branches.  To summarise:

		UNPATCHED	PATCHED
		START	LEN	START	LEN
		=======	=======	=======	=======
Prologue	0	77	0	76
UBUF		77	36	76	36
IOVEC		113	148	112	105
BVEC		261	159	217	163
KVEC		420	125	380	116
XARRAY		545	286	496	374
DISCARD/Epi	831	42	870	42
Return		873	-	912	-


The overall change in the entire file, according to size, is:
   19855     744       0   20599    5077 build3/lib/iov_iter.o -- before
   19739     864       0   20603    507b build3/lib/iov_iter.o -- after

David

UNPATCHED
<+0>:	push   %r15
<+2>:	push   %r14
<+4>:	push   %r13
<+6>:	push   %r12
<+8>:	push   %rbp
<+9>:	push   %rbx
<+10>:	sub    $0x50,%rsp
<+14>:	mov    %rdi,(%rsp)
<+18>:	mov    %gs:0x28,%rax
<+27>:	mov    %rax,0x48(%rsp)
<+32>:	xor    %eax,%eax
<+34>:	cmpb   $0x0,0x3(%rdx)
<+38>:	je     0xffffffff81779593 <_copy_from_iter+67>
<+40>:	mov    0x18(%rdx),%rax
<+44>:	mov    %rdx,%r15
<+47>:	cmp    %rax,%rsi
<+50>:	cmovbe %rsi,%rax
<+54>:	test   %rax,%rax
<+57>:	mov    %rax,%r13
<+60>:	jne    0xffffffff8177959d <_copy_from_iter+77>
<+62>:	jmp    0xffffffff81779893 <_copy_from_iter+835>
<+67>:	ud2
<+69>:	xor    %r13d,%r13d
<+72>:	jmp    0xffffffff81779893 <_copy_from_iter+835>

# ITER_UBUF
<+77>:	mov    (%rdx),%al
<+79>:	cmp    $0x5,%al
<+81>:	jne    0xffffffff817795c1 <_copy_from_iter+113>
<+83>:	mov    0x8(%rdx),%rsi
<+87>:	mov    (%rsp),%rdi
<+91>:	add    0x10(%rdx),%rsi
<+95>:	mov    %r13,%rdx
<+98>:	call   0xffffffff81777905 <copyin>
<+103>:	cltq
<+105>:	sub    %rax,%r13
<+108>:	jmp    0xffffffff8177988b <_copy_from_iter+827>

# ITER_IOVEC
<+113>:	test   %al,%al
<+115>:	jne    0xffffffff81779655 <_copy_from_iter+261>
<+121>:	mov    0x10(%rdx),%rbp
<+125>:	xor    %r12d,%r12d
<+128>:	mov    0x8(%rdx),%rbx
<+132>:	mov    0x8(%rbp),%rdx
<+136>:	sub    %rbx,%rdx
<+139>:	cmp    %r13,%rdx
<+142>:	cmova  %r13,%rdx
<+146>:	test   %rdx,%rdx
<+149>:	je     0xffffffff81779619 <_copy_from_iter+201>
<+151>:	mov    0x0(%rbp),%rsi
<+155>:	mov    (%rsp),%rax
<+159>:	add    %rbx,%rsi
<+162>:	lea    (%rax,%r12,1),%rdi
<+166>:	call   0xffffffff81777905 <copyin>
<+171>:	mov    %rdx,%rcx
<+174>:	mov    %r13,%r8
<+177>:	cltq
<+179>:	sub    %rdx,%r8
<+182>:	lea    (%r8,%rax,1),%r13
<+186>:	sub    %rax,%rcx
<+189>:	add    %rcx,%r12
<+192>:	add    %rcx,%rbx
<+195>:	cmp    0x8(%rbp),%rbx
<+199>:	jb     0xffffffff81779626 <_copy_from_iter+214>
<+201>:	add    $0x10,%rbp
<+205>:	xor    %ebx,%ebx
<+207>:	test   %r13,%r13
<+210>:	jne    0xffffffff817795d4 <_copy_from_iter+132>
<+212>:	jmp    0xffffffff81779629 <_copy_from_iter+217>
<+214>:	mov    %rbx,%r13
<+217>:	cmpb   $0x5,(%r15)
<+221>:	mov    %r13,0x8(%r15)
<+225>:	lea    0x10(%r15),%rdx
<+229>:	je     0xffffffff8177963b <_copy_from_iter+235>
<+231>:	mov    0x10(%r15),%rdx
<+235>:	mov    %rbp,%rax
<+238>:	mov    %rbp,0x10(%r15)
<+242>:	mov    %r12,%r13
<+245>:	sub    %rdx,%rax
<+248>:	sar    $0x4,%rax
<+252>:	sub    %rax,0x20(%r15)
<+256>:	jmp    0xffffffff8177988f <_copy_from_iter+831>

# ITER_BVEC
<+261>:	cmp    $0x2,%al
<+263>:	jne    0xffffffff817796f4 <_copy_from_iter+420>
<+269>:	mov    0x10(%rdx),%r14
<+273>:	xor    %ebp,%ebp
<+275>:	mov    0x8(%rdx),%r12d
<+279>:	mov    0xc(%r14),%ecx
<+283>:	add    %r12d,%ecx
<+286>:	mov    %ecx,%edi
<+288>:	and    $0xfff,%ecx
<+294>:	shr    $0xc,%edi
<+297>:	shl    $0x6,%rdi
<+301>:	add    (%r14),%rdi
<+304>:	call   0xffffffff81777282 <kmap_local_page>
<+309>:	mov    0x8(%r14),%ebx
<+313>:	mov    $0x1000,%edx
<+318>:	mov    0x1(%r15),%dil
<+322>:	sub    %r12d,%ebx
<+325>:	cmp    %r13,%rbx
<+328>:	cmova  %r13,%rbx
<+332>:	sub    %rcx,%rdx
<+335>:	cmp    %rdx,%rbx
<+338>:	cmova  %rdx,%rbx
<+342>:	lea    (%rax,%rcx,1),%rdx
<+346>:	mov    (%rsp),%rax
<+350>:	mov    %rbx,%rcx
<+353>:	add    %ebx,%r12d
<+356>:	lea    (%rax,%rbp,1),%rsi
<+360>:	add    %rbx,%rbp
<+363>:	call   0xffffffff81779531 <memcpy_from_iter>
<+368>:	cmp    %r12d,0x8(%r14)
<+372>:	jne    0xffffffff817796cd <_copy_from_iter+381>
<+374>:	add    $0x10,%r14
<+378>:	xor    %r12d,%r12d
<+381>:	sub    %rbx,%r13
<+384>:	jne    0xffffffff81779667 <_copy_from_iter+279>
<+386>:	mov    %r12d,%eax
<+389>:	mov    %rbp,%r13
<+392>:	mov    %rax,0x8(%r15)
<+396>:	mov    %r14,%rax
<+399>:	sub    0x10(%r15),%rax
<+403>:	mov    %r14,0x10(%r15)
<+407>:	sar    $0x4,%rax
<+411>:	sub    %rax,0x20(%r15)
<+415>:	jmp    0xffffffff8177988f <_copy_from_iter+831>

# ITER_KVEC
<+420>:	cmp    $0x1,%al
<+422>:	jne    0xffffffff81779771 <_copy_from_iter+545>
<+424>:	mov    0x10(%rdx),%r12
<+428>:	xor    %r14d,%r14d
<+431>:	mov    0x8(%rdx),%rbp
<+435>:	mov    0x8(%r12),%rbx
<+440>:	sub    %rbp,%rbx
<+443>:	cmp    %r13,%rbx
<+446>:	cmova  %r13,%rbx
<+450>:	test   %rbx,%rbx
<+453>:	je     0xffffffff81779742 <_copy_from_iter+498>
<+455>:	mov    (%r12),%rdx
<+459>:	mov    %rbx,%rcx
<+462>:	sub    %rbx,%r13
<+465>:	mov    (%rsp),%rax
<+469>:	mov    0x1(%r15),%dil
<+473>:	add    %rbp,%rdx
<+476>:	add    %rbx,%rbp
<+479>:	lea    (%rax,%r14,1),%rsi
<+483>:	add    %rbx,%r14
<+486>:	call   0xffffffff81779531 <memcpy_from_iter>
<+491>:	cmp    0x8(%r12),%rbp
<+496>:	jb     0xffffffff8177974f <_copy_from_iter+511>
<+498>:	add    $0x10,%r12
<+502>:	xor    %ebp,%ebp
<+504>:	test   %r13,%r13
<+507>:	jne    0xffffffff81779703 <_copy_from_iter+435>
<+509>:	jmp    0xffffffff81779752 <_copy_from_iter+514>
<+511>:	mov    %rbp,%r13
<+514>:	mov    %r12,%rax
<+517>:	sub    0x10(%r15),%rax
<+521>:	mov    %r13,0x8(%r15)
<+525>:	mov    %r14,%r13
<+528>:	mov    %r12,0x10(%r15)
<+532>:	sar    $0x4,%rax
<+536>:	sub    %rax,0x20(%r15)
<+540>:	jmp    0xffffffff8177988f <_copy_from_iter+831>

# ITER_XARRAY
<+545>:	cmp    $0x3,%al
<+547>:	jne    0xffffffff8177988f <_copy_from_iter+831>
<+553>:	mov    0x10(%rdx),%rax
<+557>:	mov    $0x1000,%ebp
<+562>:	movq   $0x3,0x28(%rsp)
<+571>:	mov    0x8(%rdx),%r14
<+575>:	add    0x20(%rdx),%r14
<+579>:	xor    %edx,%edx
<+581>:	mov    %rdx,0x30(%rsp)
<+586>:	mov    %rax,0x10(%rsp)
<+591>:	mov    %rdx,0x38(%rsp)
<+596>:	mov    %r14,%rax
<+599>:	mov    %rdx,0x40(%rsp)
<+604>:	shr    $0xc,%rax
<+608>:	mov    %rax,0x18(%rsp)
<+613>:	xor    %eax,%eax
<+615>:	mov    %eax,0x20(%rsp)
<+619>:	mov    %r14,%rax
<+622>:	and    $0xfff,%eax
<+627>:	sub    %rax,%rbp
<+630>:	call   0xffffffff81126bcf <__rcu_read_lock>
<+635>:	or     $0xffffffffffffffff,%rsi
<+639>:	lea    0x10(%rsp),%rdi
<+644>:	call   0xffffffff81d5edaf <xas_find>
<+649>:	mov    %r13,0x8(%rsp)
<+654>:	mov    %rax,%rbx
<+657>:	xor    %r13d,%r13d
<+660>:	test   %rbx,%rbx
<+663>:	je     0xffffffff81779886 <_copy_from_iter+822>
<+669>:	lea    0x10(%rsp),%rdi
<+674>:	mov    %rbx,%rsi
<+677>:	call   0xffffffff81777300 <xas_retry>
<+682>:	test   %al,%al
<+684>:	jne    0xffffffff81779874 <_copy_from_iter+804>
<+686>:	test   $0x1,%bl
<+689>:	jne    0xffffffff81779824 <_copy_from_iter+724>
<+691>:	mov    %rbx,%rdi
<+694>:	call   0xffffffff81270e56 <folio_test_hugetlb>
<+699>:	test   %al,%al
<+701>:	jne    0xffffffff81779824 <_copy_from_iter+724>
<+703>:	lea    (%r14,%r13,1),%rdx
<+707>:	mov    %rbx,%rdi
<+710>:	call   0xffffffff81777266 <folio_size>
<+715>:	lea    -0x1(%rax),%r12
<+719>:	and    %rdx,%r12
<+722>:	jmp    0xffffffff81779867 <_copy_from_iter+791>
<+724>:	ud2
<+726>:	jmp    0xffffffff81779886 <_copy_from_iter+822>
<+728>:	mov    %r12,%rsi
<+731>:	mov    %rbx,%rdi
<+734>:	call   0xffffffff817772a7 <kmap_local_folio>
<+739>:	mov    0x1(%r15),%dil
<+743>:	mov    %rax,%rdx
<+746>:	mov    (%rsp),%rax
<+750>:	cmp    %rbp,0x8(%rsp)
<+755>:	cmovbe 0x8(%rsp),%rbp
<+761>:	mov    %rbp,%rcx
<+764>:	lea    (%rax,%r13,1),%rsi
<+768>:	add    %rbp,%r13
<+771>:	call   0xffffffff81779531 <memcpy_from_iter>
<+776>:	sub    %rbp,0x8(%rsp)
<+781>:	je     0xffffffff81779886 <_copy_from_iter+822>
<+783>:	add    %rbp,%r12
<+786>:	mov    $0x1000,%ebp
<+791>:	mov    %rbx,%rdi
<+794>:	call   0xffffffff81777266 <folio_size>
<+799>:	cmp    %rax,%r12
<+802>:	jb     0xffffffff81779828 <_copy_from_iter+728>
<+804>:	lea    0x10(%rsp),%rdi
<+809>:	call   0xffffffff81777d61 <xas_next_entry>
<+814>:	mov    %rax,%rbx
<+817>:	jmp    0xffffffff817797e4 <_copy_from_iter+660>
<+822>:	call   0xffffffff811299a3 <__rcu_read_unlock>
<+827>:	add    %r13,0x8(%r15)

# ITER_DISCARD / default
<+831>:	sub    %r13,0x18(%r15)
<+835>:	mov    0x48(%rsp),%rax
<+840>:	sub    %gs:0x28,%rax
<+849>:	je     0xffffffff817798a8 <_copy_from_iter+856>
<+851>:	call   0xffffffff81d657ac <__stack_chk_fail>
<+856>:	add    $0x50,%rsp
<+860>:	mov    %r13,%rax
<+863>:	pop    %rbx
<+864>:	pop    %rbp
<+865>:	pop    %r12
<+867>:	pop    %r13
<+869>:	pop    %r14
<+871>:	pop    %r15
<+873>:	jmp    0xffffffff81d72960 <__x86_return_thunk>
PATCHED
<+0>:	push   %r15
<+2>:	push   %r14
<+4>:	push   %r13
<+6>:	push   %r12
<+8>:	push   %rbp
<+9>:	push   %rbx
<+10>:	sub    $0x68,%rsp
<+14>:	mov    %rdi,(%rsp)
<+18>:	mov    %gs:0x28,%rax
<+27>:	mov    %rax,0x60(%rsp)
<+32>:	xor    %eax,%eax
<+34>:	cmpb   $0x0,0x3(%rdx)
<+38>:	je     0xffffffff8177931e <_copy_from_iter+67>
<+40>:	mov    0x18(%rdx),%rax
<+44>:	mov    %rdx,%r15
<+47>:	cmp    %rax,%rsi
<+50>:	cmovbe %rsi,%rax
<+54>:	test   %rax,%rax
<+57>:	mov    %rax,%rbx
<+60>:	jne    0xffffffff81779327 <_copy_from_iter+76>
<+62>:	jmp    0xffffffff81779645 <_copy_from_iter+874>
<+67>:	ud2
<+69>:	xor    %ebx,%ebx
<+71>:	jmp    0xffffffff81779645 <_copy_from_iter+874>

# ITER_UBUF
<+76>:	mov    (%rdx),%al
<+78>:	cmp    $0x5,%al
<+80>:	jne    0xffffffff8177934b <_copy_from_iter+112>
<+82>:	mov    0x8(%rdx),%rdi
<+86>:	xor    %esi,%esi
<+88>:	add    0x10(%rdx),%rdi
<+92>:	mov    %rbx,%rdx
<+95>:	mov    (%rsp),%rcx
<+99>:	call   0xffffffff81778207 <copy_from_user_iter>
<+104>:	sub    %rax,%rbx
<+107>:	jmp    0xffffffff8177963d <_copy_from_iter+866>

# ITER_IOVEC
<+112>:	test   %al,%al
<+114>:	jne    0xffffffff817793b4 <_copy_from_iter+217>
<+116>:	mov    0x10(%rdx),%r13
<+120>:	xor    %r14d,%r14d
<+123>:	mov    0x8(%rdx),%r12
<+127>:	mov    0x8(%r13),%rbp
<+131>:	sub    %r12,%rbp
<+134>:	cmp    %rbx,%rbp
<+137>:	cmova  %rbx,%rbp
<+141>:	test   %rbp,%rbp
<+144>:	je     0xffffffff8177939b <_copy_from_iter+192>
<+146>:	mov    0x0(%r13),%rdi
<+150>:	mov    %rbp,%rdx
<+153>:	mov    %r14,%rsi
<+156>:	sub    %rbp,%rbx
<+159>:	mov    (%rsp),%rcx
<+163>:	add    %r12,%rdi
<+166>:	call   0xffffffff81778207 <copy_from_user_iter>
<+171>:	mov    %rbp,%rdx
<+174>:	sub    %rax,%rdx
<+177>:	add    %rax,%rbx
<+180>:	add    %rdx,%r14
<+183>:	add    %r12,%rdx
<+186>:	cmp    0x8(%r13),%rdx
<+190>:	jb     0xffffffff817793ac <_copy_from_iter+209>
<+192>:	add    $0x10,%r13
<+196>:	xor    %r12d,%r12d
<+199>:	test   %rbx,%rbx
<+202>:	jne    0xffffffff8177935a <_copy_from_iter+127>
<+204>:	jmp    0xffffffff817794bb <_copy_from_iter+480>
<+209>:	mov    %rdx,%rbx
<+212>:	jmp    0xffffffff817794bb <_copy_from_iter+480>

# ITER_BVEC
<+217>:	cmp    $0x2,%al
<+219>:	jne    0xffffffff81779457 <_copy_from_iter+380>
<+225>:	mov    0x10(%rdx),%r13
<+229>:	xor    %r12d,%r12d
<+232>:	mov    0x8(%rdx),%r14
<+236>:	mov    0xc(%r13),%ecx
<+240>:	mov    %r12,%rsi
<+243>:	mov    %r15,%r8
<+246>:	add    %r14,%rcx
<+249>:	mov    %rcx,%rdi
<+252>:	and    $0xfff,%ecx
<+258>:	shr    $0xc,%rdi
<+262>:	shl    $0x6,%rdi
<+266>:	add    0x0(%r13),%rdi
<+270>:	call   0xffffffff81777282 <kmap_local_page>
<+275>:	mov    0x8(%r13),%ebp
<+279>:	mov    $0x1000,%edx
<+284>:	lea    (%rax,%rcx,1),%rdi
<+288>:	sub    %r14,%rbp
<+291>:	cmp    %rbx,%rbp
<+294>:	cmova  %rbx,%rbp
<+298>:	sub    %rcx,%rdx
<+301>:	mov    (%rsp),%rcx
<+305>:	cmp    %rdx,%rbp
<+308>:	cmova  %rdx,%rbp
<+312>:	mov    %rbp,%rdx
<+315>:	call   0xffffffff81777934 <memcpy_from_iter_mc>
<+320>:	mov    %rbp,%rdx
<+323>:	sub    %rax,%rdx
<+326>:	add    %rax,%rbx
<+329>:	add    %rdx,%r12
<+332>:	add    %rdx,%r14
<+335>:	mov    0x8(%r13),%edx
<+339>:	sub    %rbp,%rbx
<+342>:	cmp    %rdx,%r14
<+345>:	jb     0xffffffff8177943d <_copy_from_iter+354>
<+347>:	add    $0x10,%r13
<+351>:	xor    %r14d,%r14d
<+354>:	test   %rax,%rax
<+357>:	jne    0xffffffff81779447 <_copy_from_iter+364>
<+359>:	test   %rbx,%rbx
<+362>:	jne    0xffffffff817793c7 <_copy_from_iter+236>
<+364>:	mov    %r13,0x10(%r15)
<+368>:	mov    %r12,%rbx
<+371>:	mov    %r14,0x8(%r15)
<+375>:	jmp    0xffffffff81779641 <_copy_from_iter+870>

# ITER_KVEC
<+380>:	cmp    $0x1,%al
<+382>:	jne    0xffffffff817794cb <_copy_from_iter+496>
<+384>:	mov    0x10(%rdx),%r13
<+388>:	xor    %r14d,%r14d
<+391>:	mov    0x8(%rdx),%r12
<+395>:	mov    0x8(%r13),%rbp
<+399>:	sub    %r12,%rbp
<+402>:	cmp    %rbx,%rbp
<+405>:	cmova  %rbx,%rbp
<+409>:	test   %rbp,%rbp
<+412>:	je     0xffffffff817794aa <_copy_from_iter+463>
<+414>:	mov    0x0(%r13),%rdi
<+418>:	mov    %rbp,%rdx
<+421>:	mov    %r14,%rsi
<+424>:	mov    %r15,%r8
<+427>:	mov    (%rsp),%rcx
<+431>:	sub    %rbp,%rbx
<+434>:	add    %r12,%rdi
<+437>:	call   0xffffffff81777934 <memcpy_from_iter_mc>
<+442>:	mov    %rbp,%rdx
<+445>:	sub    %rax,%rdx
<+448>:	add    %rax,%rbx
<+451>:	add    %rdx,%r14
<+454>:	add    %rdx,%r12
<+457>:	cmp    0x8(%r13),%r12
<+461>:	jb     0xffffffff817794b8 <_copy_from_iter+477>
<+463>:	add    $0x10,%r13
<+467>:	xor    %r12d,%r12d
<+470>:	test   %rbx,%rbx
<+473>:	jne    0xffffffff81779466 <_copy_from_iter+395>
<+475>:	jmp    0xffffffff817794bb <_copy_from_iter+480>
<+477>:	mov    %r12,%rbx
<+480>:	mov    %rbx,0x8(%r15)
<+484>:	mov    %r14,%rbx
<+487>:	mov    %r13,0x10(%r15)
<+491>:	jmp    0xffffffff81779641 <_copy_from_iter+870>

# ITER_XARRAY
<+496>:	cmp    $0x3,%al
<+498>:	jne    0xffffffff81779641 <_copy_from_iter+870>
<+504>:	movq   $0x3,0x40(%rsp)
<+513>:	mov    0x10(%rdx),%rax
<+517>:	mov    0x8(%rdx),%r13
<+521>:	add    0x20(%rdx),%r13
<+525>:	xor    %edx,%edx
<+527>:	mov    %rdx,0x48(%rsp)
<+532>:	mov    %rax,0x28(%rsp)
<+537>:	mov    %rdx,0x50(%rsp)
<+542>:	mov    %r13,%rax
<+545>:	mov    %rdx,0x58(%rsp)
<+550>:	shr    $0xc,%rax
<+554>:	mov    %rax,0x30(%rsp)
<+559>:	xor    %eax,%eax
<+561>:	mov    %eax,0x38(%rsp)
<+565>:	call   0xffffffff81126bcf <__rcu_read_lock>
<+570>:	or     $0xffffffffffffffff,%rsi
<+574>:	lea    0x28(%rsp),%rdi
<+579>:	call   0xffffffff81d5ed2f <xas_find>
<+584>:	xor    %ecx,%ecx
<+586>:	mov    %rax,%rbp
<+589>:	mov    %rcx,0x8(%rsp)
<+594>:	test   %rbp,%rbp
<+597>:	je     0xffffffff81779589 <_copy_from_iter+686>
<+599>:	lea    0x28(%rsp),%rdi
<+604>:	mov    %rbp,%rsi
<+607>:	call   0xffffffff81777300 <xas_retry>
<+612>:	test   %al,%al
<+614>:	jne    0xffffffff81779626 <_copy_from_iter+843>
<+620>:	test   $0x1,%ebp
<+626>:	jne    0xffffffff81779587 <_copy_from_iter+684>
<+628>:	mov    %rbp,%rdi
<+631>:	call   0xffffffff81270e56 <folio_test_hugetlb>
<+636>:	test   %al,%al
<+638>:	jne    0xffffffff81779593 <_copy_from_iter+696>
<+640>:	mov    %rbp,%rdi
<+643>:	mov    %rbx,%r11
<+646>:	call   0xffffffff81777266 <folio_size>
<+651>:	lea    -0x1(%rax),%r12
<+655>:	call   0xffffffff81777266 <folio_size>
<+660>:	and    %r13,%r12
<+663>:	sub    %r12,%rax
<+666>:	cmp    %rbx,%rax
<+669>:	cmova  %rbx,%rax
<+673>:	mov    %rax,%r9
<+676>:	mov    %rax,%r14
<+679>:	jmp    0xffffffff81779617 <_copy_from_iter+828>
<+684>:	ud2
<+686>:	mov    0x8(%rsp),%rbx
<+691>:	jmp    0xffffffff81779638 <_copy_from_iter+861>
<+696>:	ud2
<+698>:	jmp    0xffffffff81779589 <_copy_from_iter+686>
<+700>:	mov    %r12,%rsi
<+703>:	mov    %rbp,%rdi
<+706>:	mov    %r11,0x20(%rsp)
<+711>:	mov    %r15,%r8
<+714>:	mov    %r9,0x18(%rsp)
<+719>:	call   0xffffffff817772a7 <kmap_local_folio>
<+724>:	mov    $0x1000,%edx
<+729>:	mov    (%rsp),%rcx
<+733>:	mov    %rax,%rdi
<+736>:	mov    %r12,%rax
<+739>:	mov    0x8(%rsp),%rsi
<+744>:	and    $0xfff,%eax
<+749>:	sub    %rax,%rdx
<+752>:	cmp    %r14,%rdx
<+755>:	cmova  %r14,%rdx
<+759>:	mov    %rdx,0x10(%rsp)
<+764>:	call   0xffffffff81777934 <memcpy_from_iter_mc>
<+769>:	mov    0x10(%rsp),%rdx
<+774>:	mov    0x8(%rsp),%rbx
<+779>:	mov    %rax,%rsi
<+782>:	mov    0x20(%rsp),%r11
<+787>:	mov    %rdx,%rcx
<+790>:	sub    %rdx,%rsi
<+793>:	sub    %rax,%rcx
<+796>:	add    %rcx,%rbx
<+799>:	add    %rsi,%r11
<+802>:	test   %rax,%rax
<+805>:	jne    0xffffffff81779638 <_copy_from_iter+861>
<+807>:	test   %r11,%r11
<+810>:	je     0xffffffff81779638 <_copy_from_iter+861>
<+812>:	mov    0x18(%rsp),%r9
<+817>:	add    %rsi,%r14
<+820>:	add    %rcx,%r12
<+823>:	mov    %rbx,0x8(%rsp)
<+828>:	test   %r14,%r14
<+831>:	jne    0xffffffff81779597 <_copy_from_iter+700>
<+837>:	add    %r9,%r13
<+840>:	mov    %r11,%rbx
<+843>:	lea    0x28(%rsp),%rdi
<+848>:	call   0xffffffff81777d00 <xas_next_entry>
<+853>:	mov    %rax,%rbp
<+856>:	jmp    0xffffffff8177952d <_copy_from_iter+594>
<+861>:	call   0xffffffff811299a3 <__rcu_read_unlock>
<+866>:	add    %rbx,0x8(%r15)

# ITER_DISCARD / default
<+870>:	sub    %rbx,0x18(%r15)
<+874>:	mov    0x60(%rsp),%rax
<+879>:	sub    %gs:0x28,%rax
<+888>:	je     0xffffffff8177965a <_copy_from_iter+895>
<+890>:	call   0xffffffff81d6572c <__stack_chk_fail>
<+895>:	add    $0x68,%rsp
<+899>:	mov    %rbx,%rax
<+902>:	pop    %rbx
<+903>:	pop    %rbp
<+904>:	pop    %r12
<+906>:	pop    %r13
<+908>:	pop    %r14
<+910>:	pop    %r15
<+912>:	jmp    0xffffffff81d728e0 <__x86_return_thunk>

[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux