public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Jure Pecar <pegasus@telemach.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.4.17rc2aa2 oops in page_alloc.c
Date: Sun, 20 Jan 2002 19:08:35 +0100	[thread overview]
Message-ID: <20020120190835.H21279@athlon.random> (raw)
In-Reply-To: <20020120182655.301234b4.pegasus@telemach.net>
In-Reply-To: <20020120182655.301234b4.pegasus@telemach.net>; from pegasus@telemach.net on Sun, Jan 20, 2002 at 06:26:55PM +0100

On Sun, Jan 20, 2002 at 06:26:55PM +0100, Jure Pecar wrote:
> I just got this mailed from the logs on our mail server. The BUG said it's in page_alloc.c line 85.
> System is a redhat 6.2, 4way p3 xeon, 2gb ram, 512mb swap. Heavily loaded through the week (mostly i/o: sendmail, cyrus, ldap, mysql), altough the oops occured at the time of least activity.
> 
> ksymoops 0.7c on i686 2.4.17-rc2aa2.  Options used
>      -V (default)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.4.17-rc2aa2/ (default)
>      -m /usr/src/linux/System.map (default)
> 
> Warning: You did not tell me where to find symbol information.  I will
> assume that the log matches the kernel and modules that are running
> right now and I'll use the default options above for symbol resolution.
> If the current kernel and/or modules do not match the log, you can get
> more accurate output by telling me the kernel version and where to find
> map, modules, ksyms etc.  ksymoops -h explains the options.
> 
> Warning (compare_maps): mismatch on symbol partition_name  , ksyms_base says c0218650, System.map says c015ac60.  Ignoring ksyms_base entry
> Jan 19 23:04:01 castor kernel: invalid operand: 0000 
> Jan 19 23:04:01 castor kernel: CPU:    0 
> Jan 19 23:04:01 castor kernel: EIP:    0010:[__free_pages_ok+171/740]    Not tainted 
> Jan 19 23:04:01 castor kernel: EFLAGS: 00010282 
> Jan 19 23:04:01 castor kernel: eax: 0000001f   ebx: 00000028   ecx: c02d8388   edx: 0000651b 
> Jan 19 23:04:01 castor kernel: esi: c232fc40   edi: dd52a000   ebp: df749000   esp: dd52bed0 
> Jan 19 23:04:01 castor kernel: ds: 0018   es: 0018   ss: 0018 
> Jan 19 23:04:01 castor kernel: Process ps (pid: 20330, stackpage=dd52b000) 
> Jan 19 23:04:01 castor kernel: Stack: c0281b01 00000055 00000028 c232fc40 dd52a000 df749000 dd52a000 eee015a0  
> Jan 19 23:04:01 castor kernel:        bfffff2c 00000000 00000000 00000000 c012f620 c011d554 00000000 eee015a0  
> Jan 19 23:04:01 castor kernel:        df749000 e28d0000 c232fc40 00000f2c eee015bc dd52a000 eee015bc df749000  
> Jan 19 23:04:01 castor kernel: Call Trace: [__free_pages+28/32] [access_process_vm+448/540] [proc_pid_cmdline+100/256] [proc_info_read+89/296] [sys_read+142/196]  
> Jan 19 23:04:01 castor kernel: Code: 0f 0b 83 c4 08 8b 46 18 a8 80 74 11 6a 57 68 01 1b 28 c0 e8

seems like a genuine bug in mainline with the introduction of
get_user_pages in late 2.4, here it is the incremental fix:

--- 2.4.18pre2aa2/kernel/ptrace.c.~1~	Wed Jan 16 17:52:20 2002
+++ 2.4.18pre2aa2/kernel/ptrace.c	Sun Jan 20 18:53:35 2002
@@ -150,7 +150,7 @@
 
 		ret = get_user_pages(current, mm, addr, 1,
 				write, 1, &page, &vma);
-		if (ret <= 0)
+		if (ret <= 0 || !page)
 			break;
 
 		bytes = len;


however it also sounds a little strage that you have a task with a
special page in the cmdline, but that's indipendent to the above fix to
access_process_vm.

> Using defaults from ksymoops -t elf32-i386 -a i386
> 
> Code;  00000000 Before first symbol
> 00000000 <_EIP>:
> Code;  00000000 Before first symbol
>    0:   0f 0b                     ud2a   
> Code;  00000002 Before first symbol
>    2:   83 c4 08                  add    $0x8,%esp
> Code;  00000005 Before first symbol
>    5:   8b 46 18                  mov    0x18(%esi),%eax
> Code;  00000008 Before first symbol
>    8:   a8 80                     test   $0x80,%al
> Code;  0000000a Before first symbol
>    a:   74 11                     je     1d <_EIP+0x1d> 0000001d Before first symbol
> Code;  0000000c Before first symbol
>    c:   6a 57                     push   $0x57
> Code;  0000000e Before first symbol
>    e:   68 01 1b 28 c0            push   $0xc0281b01
> Code;  00000013 Before first symbol
>   13:   e8 00 00 00 00            call   18 <_EIP+0x18> 00000018 Before first symbol
> 
> 
> 2 warnings issued.  Results may not be reliable.
> 
> About 19 hours later, the box appears to work ok.
> 
> 
> Some thoughts on aa kernel ... well it is definitely better that stock
> 2.4.17, but the box still uses up to 50mb of swap. 2.4.17 went into
> 300mb easily. For contrast, 2.4.2 which run more than half a year
> without problems on this box, _never_ swapped.

the real question is, does it feel slower with 50mbyte in swap? I mean,
some very very lightweight background activity in the long run should be
a very good thing, it should save you some ram on the very long run. of
course unless you keep seeing swapin/swapout almost all the time, in
such a case it would be a big mistake but I don't think it's the case.
If after a week you see 50mbyte in swap (and you almost never seen any
swapin, and maybe only a few very seldom swapout), that sounds good.
Infact it's not even sure that you did any real swapout yet, part of the
50mbyte in swap may only be preallocated.

with -aa if you don't want to see such 50mbyte in swap (even if they
seems very sane at first sight, so this is not a suggestion, this is
just informational, just if you want to try) you can run:

	echo 1000 >/proc/sys/vm/vm_mapped_ratio

Andrea

  reply	other threads:[~2002-01-20 18:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-20 17:26 2.4.17rc2aa2 oops in page_alloc.c Jure Pecar
2002-01-20 18:08 ` Andrea Arcangeli [this message]
2002-01-20 20:35   ` Jure Pecar
2002-03-04 22:33 ` Andrea Arcangeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020120190835.H21279@athlon.random \
    --to=andrea@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pegasus@telemach.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox