re: [bug] wait_on_buffer, __buffer_state, __down, scheduling

From: david (david@killerlabs.com)
Date: Tue Mar 21 2000 - 21:29:35 EST


ok, more bug reporting time. please pardon the length of this email.

======= NOTE ========
in the below assembler dumps, you can skip ahead to "<===" and "===>" where
i marked the interesting sections.
=====================

it appears that these processes are all calling schedule() and are never
getting run again. EVERY D state process is stuck on the instruction
immediately following "call 0xc0110c34 <schedule>"

-d

;
;

kupdated is stuck at c012aa4d (DW)
sendmail is stuck at c0107a81 (D)
apache is stuck at the following locations:
  c011fbc2 (D)
  c0107a81 (D)
  c012aa4d (D)
cucipop is stuck at c011fbc2(D)

These correspond to:

c0107a81:
Dump of assembler code for function __down:
0xc0107958 <__down>: pushl %ebp
0xc0107959 <__down+1>: movl $0xffffe000,%eax
0xc010795e <__down+6>: movl %esp,%ebp
0xc0107960 <__down+8>: andl %esp,%eax
0xc0107962 <__down+10>: subl $0x34,%esp
0xc0107965 <__down+13>: pushl %edi
0xc0107966 <__down+14>: pushl %esi
0xc0107967 <__down+15>: leal 0xffffffe8(%ebp),%edi
0xc010796a <__down+18>: pushl %ebx
0xc010796b <__down+19>: leal 0xffffffd0(%ebp),%esi
0xc010796e <__down+22>: movl %eax,0xffffffcc(%ebp)
0xc0107971 <__down+25>: movl 0x8(%ebp),%ebx
0xc0107974 <__down+28>: movl %eax,0xffffffd4(%ebp)
0xc0107977 <__down+31>: leal 0xfffffff8(%ebp),%eax
0xc010797a <__down+34>: movl $0x1234567,0xffffffd0(%ebp)
0xc0107981 <__down+41>: movl $0x0,0xffffffd8(%ebp)
0xc0107988 <__down+48>: movl $0x0,0xffffffdc(%ebp)
0xc010798f <__down+55>: movl %eax,0xffffffe0(%ebp)
0xc0107992 <__down+58>: movl $0x0,0xffffffe4(%ebp)
0xc0107999 <__down+65>: cld
0xc010799a <__down+66>: movl $0x6,%ecx
0xc010799f <__down+71>: repz movsl %ds:(%esi),%es:(%edi)
0xc01079a1 <__down+73>: movl 0xffffffcc(%ebp),%edx
0xc01079a4 <__down+76>: leal 0x8(%ebx),%esi
0xc01079a7 <__down+79>: movl $0x22,(%edx)
0xc01079ad <__down+85>: pushf
0xc01079ae <__down+86>: popl %edi
0xc01079af <__down+87>: cli
0xc01079b0 <__down+88>: testl %esi,%esi
0xc01079b2 <__down+90>: jne 0xc01079cc <__down+116>
0xc01079b4 <__down+92>: pushl $0xc01b7ae0
0xc01079b9 <__down+97>: call 0xc01138b4 <printk>
0xc01079be <__down+102>: movl $0x0,0x0
0xc01079c8 <__down+112>: addl $0x4,%esp
0xc01079cb <__down+115>: nop
0xc01079cc <__down+116>: leal 0x14(%ebx),%edx
0xc01079cf <__down+119>: movl 0xc(%esi),%ecx
0xc01079d2 <__down+122>: cmpl %edx,%ecx
0xc01079d4 <__down+124>: je 0xc0107a00 <__down+168>
0xc01079d6 <__down+126>: movl 0x10(%esi),%eax
0xc01079d9 <__down+129>: pushl %eax
0xc01079da <__down+130>: pushl %edx
0xc01079db <__down+131>: pushl %ecx
0xc01079dc <__down+132>: pushl $0xc01b7b00
0xc01079e1 <__down+137>: call 0xc01138b4 <printk>
0xc01079e6 <__down+142>: addl $0x10,%esp
0xc01079e9 <__down+145>: pushl $0xc01b7ae0
0xc01079ee <__down+150>: call 0xc01138b4 <printk>
0xc01079f3 <__down+155>: movl $0x0,0x0
0xc01079fd <__down+165>: addl $0x4,%esp
0xc0107a00 <__down+168>: movl 0xfffffff8(%ebp),%eax
0xc0107a03 <__down+171>: leal 0xfffffff8(%ebp),%ecx
0xc0107a06 <__down+174>: cmpl %ecx,%eax
0xc0107a08 <__down+176>: je 0xc0107a30 <__down+216>
0xc0107a0a <__down+178>: pushl %ecx
0xc0107a0b <__down+179>: pushl %eax
0xc0107a0c <__down+180>: pushl $0xc01b7b40
0xc0107a11 <__down+185>: call 0xc01138b4 <printk>
0xc0107a16 <__down+190>: addl $0xc,%esp
0xc0107a19 <__down+193>: pushl $0xc01b7ae0
0xc0107a1e <__down+198>: call 0xc01138b4 <printk>
0xc0107a23 <__down+203>: movl $0x0,0x0
0xc0107a2d <__down+213>: addl $0x4,%esp
0xc0107a30 <__down+216>: cmpl $0x0,0x4(%esi)
0xc0107a34 <__down+220>: je 0xc0107a3c <__down+228>
0xc0107a36 <__down+222>: cmpl $0x0,0x8(%esi)
0xc0107a3a <__down+226>: jne 0xc0107a54 <__down+252>
0xc0107a3c <__down+228>: pushl $0xc01b7ae0
0xc0107a41 <__down+233>: call 0xc01138b4 <printk>
0xc0107a46 <__down+238>: movl $0x0,0x0
0xc0107a50 <__down+248>: addl $0x4,%esp
0xc0107a53 <__down+251>: nop
0xc0107a54 <__down+252>: movl 0x8(%esi),%eax
0xc0107a57 <__down+255>: movl (%eax),%edx
0xc0107a59 <__down+257>: leal 0xfffffff0(%ebp),%ecx
0xc0107a5c <__down+260>: movl %ecx,0x4(%edx)
0xc0107a5f <__down+263>: movl %edx,0xfffffff0(%ebp)
0xc0107a62 <__down+266>: movl %eax,0xfffffff4(%ebp)
0xc0107a65 <__down+269>: movl %ecx,%edx
0xc0107a67 <__down+271>: movl %edx,(%eax)
0xc0107a69 <__down+273>: pushl %edi
0xc0107a6a <__down+274>: popf
0xc0107a6b <__down+275>: cli
0xc0107a6c <__down+276>: incl 0x4(%ebx)
0xc0107a6f <__down+279>: leal 0x8(%ebx),%esi
0xc0107a72 <__down+282>: jmp 0xc0107a8c <__down+308>
0xc0107a74 <__down+284>: movl $0x1,0x4(%ebx)
0xc0107a7b <__down+291>: sti
<===
0xc0107a7c <__down+292>: call 0xc0110c34 <schedule>
0xc0107a81 <__down+297>: movl 0xffffffcc(%ebp),%ecx
===>
0xc0107a84 <__down+300>: movl $0x22,(%ecx)
0xc0107a8a <__down+306>: cli
0xc0107a8b <__down+307>: nop
0xc0107a8c <__down+308>: movl 0x4(%ebx),%eax
0xc0107a8f <__down+311>: decl %eax
0xc0107a90 <__down+312>: addl %eax,(%ebx)
0xc0107a92 <__down+314>: sets %al
0xc0107a95 <__down+317>: testb %al,%al
0xc0107a97 <__down+319>: jne 0xc0107a74 <__down+284>
0xc0107a99 <__down+321>: movl $0x0,0x4(%ebx)
0xc0107aa0 <__down+328>: sti
0xc0107aa1 <__down+329>: pushf
0xc0107aa2 <__down+330>: popl %ebx
0xc0107aa3 <__down+331>: cli
0xc0107aa4 <__down+332>: movl 0xfffffff8(%ebp),%eax
0xc0107aa7 <__down+335>: leal 0xfffffff8(%ebp),%edx
0xc0107aaa <__down+338>: cmpl %edx,%eax
0xc0107aac <__down+340>: je 0xc0107ad4 <__down+380>
0xc0107aae <__down+342>: pushl %edx
0xc0107aaf <__down+343>: pushl %eax
0xc0107ab0 <__down+344>: pushl $0xc01b7b40
0xc0107ab5 <__down+349>: call 0xc01138b4 <printk>
0xc0107aba <__down+354>: addl $0xc,%esp
0xc0107abd <__down+357>: pushl $0xc01b7ae0

c011fbc2:
Dump of assembler code for function ___wait_on_page:
0xc011fa48 <___wait_on_page>: subl $0x34,%esp
0xc011fa4b <___wait_on_page+3>: movl $0xffffe000,%eax
0xc011fa50 <___wait_on_page+8>: pushl %ebp
0xc011fa51 <___wait_on_page+9>: andl %esp,%eax
0xc011fa53 <___wait_on_page+11>: pushl %edi
0xc011fa54 <___wait_on_page+12>: pushl %esi
0xc011fa55 <___wait_on_page+13>: pushl %ebx
0xc011fa56 <___wait_on_page+14>: movl %eax,0x10(%esp,1)
0xc011fa5a <___wait_on_page+18>: movl 0x48(%esp,1),%ebp
0xc011fa5e <___wait_on_page+22>: movl %eax,0x18(%esp,1)
0xc011fa62 <___wait_on_page+26>: leal 0x2c(%esp,1),%edi
0xc011fa66 <___wait_on_page+30>: leal 0x3c(%esp,1),%eax
0xc011fa6a <___wait_on_page+34>: movl $0x1234567,0x14(%esp,1)
0xc011fa72 <___wait_on_page+42>: movl $0x0,0x1c(%esp,1)
0xc011fa7a <___wait_on_page+50>: leal 0x14(%esp,1),%esi
0xc011fa7e <___wait_on_page+54>: movl $0x0,0x20(%esp,1)
0xc011fa86 <___wait_on_page+62>: leal 0x24(%ebp),%ebx
0xc011fa89 <___wait_on_page+65>: movl %eax,0x24(%esp,1)
0xc011fa8d <___wait_on_page+69>: movl $0x0,0x28(%esp,1)
0xc011fa95 <___wait_on_page+77>: cld
0xc011fa96 <___wait_on_page+78>: movl $0x6,%ecx
0xc011fa9b <___wait_on_page+83>: repz movsl %ds:(%esi),%es:(%edi)
0xc011fa9d <___wait_on_page+85>: pushf
0xc011fa9e <___wait_on_page+86>: popl %esi
0xc011fa9f <___wait_on_page+87>: cli
0xc011faa0 <___wait_on_page+88>: movl %eax,%edi
0xc011faa2 <___wait_on_page+90>: testl %ebx,%ebx
0xc011faa4 <___wait_on_page+92>: jne 0xc011fac0 <___wait_on_page+120>
0xc011faa6 <___wait_on_page+94>: pushl $0xc01bec80
0xc011faab <___wait_on_page+99>: call 0xc01138b4 <printk>
0xc011fab0 <___wait_on_page+104>: movl $0x0,0x0
0xc011faba <___wait_on_page+114>: addl $0x4,%esp
0xc011fabd <___wait_on_page+117>: leal 0x0(%esi),%esi
0xc011fac0 <___wait_on_page+120>: leal 0x30(%ebp),%edx
0xc011fac3 <___wait_on_page+123>: movl 0xc(%ebx),%ecx
0xc011fac6 <___wait_on_page+126>: cmpl %edx,%ecx
0xc011fac8 <___wait_on_page+128>: je 0xc011faf4 <___wait_on_page+172>
0xc011faca <___wait_on_page+130>: movl 0x10(%ebx),%eax
0xc011facd <___wait_on_page+133>: pushl %eax
0xc011face <___wait_on_page+134>: pushl %edx
0xc011facf <___wait_on_page+135>: pushl %ecx
0xc011fad0 <___wait_on_page+136>: pushl $0xc01beca0
0xc011fad5 <___wait_on_page+141>: call 0xc01138b4 <printk>
0xc011fada <___wait_on_page+146>: addl $0x10,%esp
0xc011fadd <___wait_on_page+149>: pushl $0xc01bec80
0xc011fae2 <___wait_on_page+154>: call 0xc01138b4 <printk>
0xc011fae7 <___wait_on_page+159>: movl $0x0,0x0
0xc011faf1 <___wait_on_page+169>: addl $0x4,%esp
0xc011faf4 <___wait_on_page+172>: movl 0x3c(%esp,1),%eax
0xc011faf8 <___wait_on_page+176>: cmpl %edi,%eax
0xc011fafa <___wait_on_page+178>: je 0xc011fb24 <___wait_on_page+220>
0xc011fafc <___wait_on_page+180>: pushl %edi
0xc011fafd <___wait_on_page+181>: pushl %eax
0xc011fafe <___wait_on_page+182>: pushl $0xc01bece0
0xc011fb03 <___wait_on_page+187>: call 0xc01138b4 <printk>
0xc011fb08 <___wait_on_page+192>: addl $0xc,%esp
0xc011fb0b <___wait_on_page+195>: pushl $0xc01bec80
0xc011fb10 <___wait_on_page+200>: call 0xc01138b4 <printk>
0xc011fb15 <___wait_on_page+205>: movl $0x0,0x0
0xc011fb1f <___wait_on_page+215>: addl $0x4,%esp
0xc011fb22 <___wait_on_page+218>: movl %esi,%esi
0xc011fb24 <___wait_on_page+220>: cmpl $0x0,0x4(%ebx)
0xc011fb28 <___wait_on_page+224>: je 0xc011fb30 <___wait_on_page+232>
0xc011fb2a <___wait_on_page+226>: cmpl $0x0,0x8(%ebx)
0xc011fb2e <___wait_on_page+230>: jne 0xc011fb48 <___wait_on_page+256>
0xc011fb30 <___wait_on_page+232>: pushl $0xc01bec80
0xc011fb35 <___wait_on_page+237>: call 0xc01138b4 <printk>
0xc011fb3a <___wait_on_page+242>: movl $0x0,0x0
0xc011fb44 <___wait_on_page+252>: addl $0x4,%esp
0xc011fb47 <___wait_on_page+255>: nop
0xc011fb48 <___wait_on_page+256>: movl 0x4(%ebx),%eax
0xc011fb4b <___wait_on_page+259>: leal 0x4(%ebx),%ecx
0xc011fb4e <___wait_on_page+262>: leal 0x34(%esp,1),%edx
0xc011fb52 <___wait_on_page+266>: movl %edx,0x4(%eax)
0xc011fb55 <___wait_on_page+269>: movl %eax,0x34(%esp,1)
0xc011fb59 <___wait_on_page+273>: movl %ecx,0x38(%esp,1)
0xc011fb5d <___wait_on_page+277>: movl %edx,%eax
0xc011fb5f <___wait_on_page+279>: movl %eax,0x4(%ebx)
0xc011fb62 <___wait_on_page+282>: pushl %esi
0xc011fb63 <___wait_on_page+283>: popf
0xc011fb64 <___wait_on_page+284>: cmpl $0x0,0xc01f3b00
0xc011fb6b <___wait_on_page+291>: je 0xc011fbac <___wait_on_page+356>
0xc011fb6d <___wait_on_page+293>: pushf
0xc011fb6e <___wait_on_page+294>: popl %eax
0xc011fb6f <___wait_on_page+295>: cli
0xc011fb70 <___wait_on_page+296>: movl 0xc01f3b00,%ebx
0xc011fb76 <___wait_on_page+302>: movl $0x0,0xc01f3b00
0xc011fb80 <___wait_on_page+312>: pushl %eax
0xc011fb81 <___wait_on_page+313>: popf
0xc011fb82 <___wait_on_page+314>: movl %esi,%esi
0xc011fb84 <___wait_on_page+316>: testl %ebx,%ebx
0xc011fb86 <___wait_on_page+318>: je 0xc011fbac <___wait_on_page+356>
0xc011fb88 <___wait_on_page+320>: movl %ebx,%eax
0xc011fb8a <___wait_on_page+322>: movl 0xc(%ebx),%ecx
0xc011fb8d <___wait_on_page+325>: movl 0x8(%ebx),%edx
0xc011fb90 <___wait_on_page+328>: movl (%ebx),%ebx
0xc011fb92 <___wait_on_page+330>: lock addl $0x0,0x0(%esp,1)
0xc011fb98 <___wait_on_page+336>: movl $0x0,0x4(%eax)
0xc011fb9f <___wait_on_page+343>: testl %edx,%edx
0xc011fba1 <___wait_on_page+345>: je 0xc011fb84 <___wait_on_page+316>
0xc011fba3 <___wait_on_page+347>: pushl %ecx
0xc011fba4 <___wait_on_page+348>: call *%edx
0xc011fba6 <___wait_on_page+350>: addl $0x4,%esp
0xc011fba9 <___wait_on_page+353>: jmp 0xc011fb84 <___wait_on_page+316>
0xc011fbab <___wait_on_page+355>: nop
0xc011fbac <___wait_on_page+356>: movl 0x10(%esp,1),%edx
0xc011fbb0 <___wait_on_page+360>: movl $0x2,(%edx)
0xc011fbb6 <___wait_on_page+366>: movl 0x18(%ebp),%eax
0xc011fbb9 <___wait_on_page+369>: testb $0x1,%al
0xc011fbbb <___wait_on_page+371>: je 0xc011fbcc <___wait_on_page+388>
<===
0xc011fbbd <___wait_on_page+373>: call 0xc0110c34 <schedule>
0xc011fbc2 <___wait_on_page+378>: movl 0x18(%ebp),%eax
===>
0xc011fbc5 <___wait_on_page+381>: testb $0x1,%al
0xc011fbc7 <___wait_on_page+383>: jne 0xc011fb64 <___wait_on_page+284>
0xc011fbc9 <___wait_on_page+385>: leal 0x0(%esi),%esi
0xc011fbcc <___wait_on_page+388>: movl 0x10(%esp,1),%ecx
0xc011fbd0 <___wait_on_page+392>: movl $0x0,(%ecx)
0xc011fbd6 <___wait_on_page+398>: pushf
0xc011fbd7 <___wait_on_page+399>: popl %ebx
0xc011fbd8 <___wait_on_page+400>: cli
0xc011fbd9 <___wait_on_page+401>: movl 0x3c(%esp,1),%eax
0xc011fbdd <___wait_on_page+405>: cmpl %edi,%eax
0xc011fbdf <___wait_on_page+407>: je 0xc011fc08 <___wait_on_page+448>
0xc011fbe1 <___wait_on_page+409>: pushl %edi
0xc011fbe2 <___wait_on_page+410>: pushl %eax
0xc011fbe3 <___wait_on_page+411>: pushl $0xc01bece0
0xc011fbe8 <___wait_on_page+416>: call 0xc01138b4 <printk>
0xc011fbed <___wait_on_page+421>: addl $0xc,%esp
0xc011fbf0 <___wait_on_page+424>: pushl $0xc01bec80
0xc011fbf5 <___wait_on_page+429>: call 0xc01138b4 <printk>
0xc011fbfa <___wait_on_page+434>: movl $0x0,0x0
0xc011fc04 <___wait_on_page+444>: addl $0x4,%esp
0xc011fc07 <___wait_on_page+447>: nop
0xc011fc08 <___wait_on_page+448>: movl 0x38(%esp,1),%edx
0xc011fc0c <___wait_on_page+452>: movl 0x34(%esp,1),%eax
0xc011fc10 <___wait_on_page+456>: movl %edx,0x4(%eax)
0xc011fc13 <___wait_on_page+459>: movl %eax,(%edx)

c012aa4d:
Dump of assembler code for function __wait_on_buffer:
0xc012a8d4 <__wait_on_buffer>: subl $0x34,%esp
0xc012a8d7 <__wait_on_buffer+3>: movl $0xffffe000,%eax
0xc012a8dc <__wait_on_buffer+8>: pushl %ebp
0xc012a8dd <__wait_on_buffer+9>: andl %esp,%eax
0xc012a8df <__wait_on_buffer+11>: pushl %edi
0xc012a8e0 <__wait_on_buffer+12>: pushl %esi
0xc012a8e1 <__wait_on_buffer+13>: pushl %ebx
0xc012a8e2 <__wait_on_buffer+14>: movl %eax,0x10(%esp,1)
0xc012a8e6 <__wait_on_buffer+18>: movl 0x48(%esp,1),%ebp
0xc012a8ea <__wait_on_buffer+22>: movl %eax,0x18(%esp,1)
0xc012a8ee <__wait_on_buffer+26>: leal 0x2c(%esp,1),%edi
0xc012a8f2 <__wait_on_buffer+30>: leal 0x3c(%esp,1),%eax
0xc012a8f6 <__wait_on_buffer+34>: movl $0x1234567,0x14(%esp,1)
0xc012a8fe <__wait_on_buffer+42>: movl $0x0,0x1c(%esp,1)
0xc012a906 <__wait_on_buffer+50>: leal 0x14(%esp,1),%esi
0xc012a90a <__wait_on_buffer+54>: movl $0x0,0x20(%esp,1)
0xc012a912 <__wait_on_buffer+62>: movl %eax,0x24(%esp,1)
0xc012a916 <__wait_on_buffer+66>: movl $0x0,0x28(%esp,1)
0xc012a91e <__wait_on_buffer+74>: cld
0xc012a91f <__wait_on_buffer+75>: movl $0x6,%ecx
0xc012a924 <__wait_on_buffer+80>: repz movsl %ds:(%esi),%es:(%edi)
0xc012a926 <__wait_on_buffer+82>: incl 0x10(%ebp)
0xc012a929 <__wait_on_buffer+85>: leal 0x48(%ebp),%ebx
0xc012a92c <__wait_on_buffer+88>: pushf
0xc012a92d <__wait_on_buffer+89>: popl %esi
0xc012a92e <__wait_on_buffer+90>: cli
0xc012a92f <__wait_on_buffer+91>: movl %eax,%edi
0xc012a931 <__wait_on_buffer+93>: testl %ebx,%ebx
0xc012a933 <__wait_on_buffer+95>:
    jne 0xc012a94c <__wait_on_buffer+120>
0xc012a935 <__wait_on_buffer+97>: pushl $0xc01c1d60
0xc012a93a <__wait_on_buffer+102>: call 0xc01138b4 <printk>
0xc012a93f <__wait_on_buffer+107>: movl $0x0,0x0
0xc012a949 <__wait_on_buffer+117>: addl $0x4,%esp
0xc012a94c <__wait_on_buffer+120>: leal 0x54(%ebp),%edx
0xc012a94f <__wait_on_buffer+123>: movl 0xc(%ebx),%ecx
0xc012a952 <__wait_on_buffer+126>: cmpl %edx,%ecx
0xc012a954 <__wait_on_buffer+128>:
    je 0xc012a980 <__wait_on_buffer+172>
0xc012a956 <__wait_on_buffer+130>: movl 0x10(%ebx),%eax
0xc012a959 <__wait_on_buffer+133>: pushl %eax
0xc012a95a <__wait_on_buffer+134>: pushl %edx
0xc012a95b <__wait_on_buffer+135>: pushl %ecx
0xc012a95c <__wait_on_buffer+136>: pushl $0xc01c1d80
0xc012a961 <__wait_on_buffer+141>: call 0xc01138b4 <printk>
0xc012a966 <__wait_on_buffer+146>: addl $0x10,%esp
0xc012a969 <__wait_on_buffer+149>: pushl $0xc01c1d60
0xc012a96e <__wait_on_buffer+154>: call 0xc01138b4 <printk>
0xc012a973 <__wait_on_buffer+159>: movl $0x0,0x0
0xc012a97d <__wait_on_buffer+169>: addl $0x4,%esp
0xc012a980 <__wait_on_buffer+172>: movl 0x3c(%esp,1),%eax
0xc012a984 <__wait_on_buffer+176>: cmpl %edi,%eax
0xc012a986 <__wait_on_buffer+178>:
    je 0xc012a9b0 <__wait_on_buffer+220>
0xc012a988 <__wait_on_buffer+180>: pushl %edi
0xc012a989 <__wait_on_buffer+181>: pushl %eax
0xc012a98a <__wait_on_buffer+182>: pushl $0xc01c1dc0
0xc012a98f <__wait_on_buffer+187>: call 0xc01138b4 <printk>
0xc012a994 <__wait_on_buffer+192>: addl $0xc,%esp
0xc012a997 <__wait_on_buffer+195>: pushl $0xc01c1d60
0xc012a99c <__wait_on_buffer+200>: call 0xc01138b4 <printk>
0xc012a9a1 <__wait_on_buffer+205>: movl $0x0,0x0
0xc012a9ab <__wait_on_buffer+215>: addl $0x4,%esp
0xc012a9ae <__wait_on_buffer+218>: movl %esi,%esi
0xc012a9b0 <__wait_on_buffer+220>: cmpl $0x0,0x4(%ebx)
0xc012a9b4 <__wait_on_buffer+224>:
    je 0xc012a9bc <__wait_on_buffer+232>
0xc012a9b6 <__wait_on_buffer+226>: cmpl $0x0,0x8(%ebx)
0xc012a9ba <__wait_on_buffer+230>:
    jne 0xc012a9d4 <__wait_on_buffer+256>
0xc012a9bc <__wait_on_buffer+232>: pushl $0xc01c1d60
0xc012a9c1 <__wait_on_buffer+237>: call 0xc01138b4 <printk>
0xc012a9c6 <__wait_on_buffer+242>: movl $0x0,0x0
0xc012a9d0 <__wait_on_buffer+252>: addl $0x4,%esp
0xc012a9d3 <__wait_on_buffer+255>: nop
0xc012a9d4 <__wait_on_buffer+256>: movl 0x4(%ebx),%eax
0xc012a9d7 <__wait_on_buffer+259>: leal 0x4(%ebx),%ecx
0xc012a9da <__wait_on_buffer+262>: leal 0x34(%esp,1),%edx
0xc012a9de <__wait_on_buffer+266>: movl %edx,0x4(%eax)
0xc012a9e1 <__wait_on_buffer+269>: movl %eax,0x34(%esp,1)
0xc012a9e5 <__wait_on_buffer+273>: movl %ecx,0x38(%esp,1)
0xc012a9e9 <__wait_on_buffer+277>: movl %edx,%eax
0xc012a9eb <__wait_on_buffer+279>: movl %eax,0x4(%ebx)
0xc012a9ee <__wait_on_buffer+282>: pushl %esi
0xc012a9ef <__wait_on_buffer+283>: popf
0xc012a9f0 <__wait_on_buffer+284>: cmpl $0x0,0xc01f3b00
0xc012a9f7 <__wait_on_buffer+291>:
    je 0xc012aa38 <__wait_on_buffer+356>
0xc012a9f9 <__wait_on_buffer+293>: pushf
0xc012a9fa <__wait_on_buffer+294>: popl %eax
0xc012a9fb <__wait_on_buffer+295>: cli
0xc012a9fc <__wait_on_buffer+296>: movl 0xc01f3b00,%ebx
0xc012aa02 <__wait_on_buffer+302>: movl $0x0,0xc01f3b00
0xc012aa0c <__wait_on_buffer+312>: pushl %eax
0xc012aa0d <__wait_on_buffer+313>: popf
0xc012aa0e <__wait_on_buffer+314>: movl %esi,%esi
0xc012aa10 <__wait_on_buffer+316>: testl %ebx,%ebx
0xc012aa12 <__wait_on_buffer+318>:
    je 0xc012aa38 <__wait_on_buffer+356>
0xc012aa14 <__wait_on_buffer+320>: movl %ebx,%eax
0xc012aa16 <__wait_on_buffer+322>: movl 0xc(%ebx),%ecx
0xc012aa19 <__wait_on_buffer+325>: movl 0x8(%ebx),%edx
0xc012aa1c <__wait_on_buffer+328>: movl (%ebx),%ebx
0xc012aa1e <__wait_on_buffer+330>: lock addl $0x0,0x0(%esp,1)
0xc012aa24 <__wait_on_buffer+336>: movl $0x0,0x4(%eax)
0xc012aa2b <__wait_on_buffer+343>: testl %edx,%edx
0xc012aa2d <__wait_on_buffer+345>:
    je 0xc012aa10 <__wait_on_buffer+316>
0xc012aa2f <__wait_on_buffer+347>: pushl %ecx
0xc012aa30 <__wait_on_buffer+348>: call *%edx
0xc012aa32 <__wait_on_buffer+350>: addl $0x4,%esp
0xc012aa35 <__wait_on_buffer+353>:
    jmp 0xc012aa10 <__wait_on_buffer+316>
0xc012aa37 <__wait_on_buffer+355>: nop
0xc012aa38 <__wait_on_buffer+356>: movl 0x10(%esp,1),%edx
0xc012aa3c <__wait_on_buffer+360>: movl $0x2,(%edx)
0xc012aa42 <__wait_on_buffer+366>: testb $0x4,0x18(%ebp)
0xc012aa46 <__wait_on_buffer+370>:
    je 0xc012aa54 <__wait_on_buffer+384>
<===
0xc012aa48 <__wait_on_buffer+372>: call 0xc0110c34 <schedule>
0xc012aa4d <__wait_on_buffer+377>: testb $0x4,0x18(%ebp)
===>
0xc012aa51 <__wait_on_buffer+381>:
    jne 0xc012a9f0 <__wait_on_buffer+284>
0xc012aa53 <__wait_on_buffer+383>: nop
0xc012aa54 <__wait_on_buffer+384>: movl 0x10(%esp,1),%ecx
0xc012aa58 <__wait_on_buffer+388>: movl $0x0,(%ecx)
0xc012aa5e <__wait_on_buffer+394>: pushf
0xc012aa5f <__wait_on_buffer+395>: popl %ebx
0xc012aa60 <__wait_on_buffer+396>: cli
0xc012aa61 <__wait_on_buffer+397>: movl 0x3c(%esp,1),%eax
0xc012aa65 <__wait_on_buffer+401>: cmpl %edi,%eax
0xc012aa67 <__wait_on_buffer+403>:
    je 0xc012aa90 <__wait_on_buffer+444>
0xc012aa69 <__wait_on_buffer+405>: pushl %edi
0xc012aa6a <__wait_on_buffer+406>: pushl %eax
0xc012aa6b <__wait_on_buffer+407>: pushl $0xc01c1dc0
0xc012aa70 <__wait_on_buffer+412>: call 0xc01138b4 <printk>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:35 EST