2005-12-09 15:26:47

by Jacek Luczak

[permalink] [raw]
Subject: Linux 2.6.15-rc5 and Alsa 1.0.10


Hi

I'm using now 2.6.15-rc5 kernel with latest Alsa 1.0.10 and I received a
lot of 'bad page state at free_hot_cold_page' (see example below)
messages. Is this kernel or alsa error?

System:
Slackware Linux, GCC 3.4.4, Binutils 2.16.1.
CPU: Pentium 4 3Ghz HT
Sound card: CMI9880 (HDA)

Regards

Jacek Luczak

---------------

Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da9c0)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da9a0)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da980)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da960)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da940)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da920)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:20 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:20 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:20 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da900)
Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:20 slawek kernel: Backtrace:
Dec 9 16:53:20 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:20 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:20 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:20 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:20 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:20 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:20 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:21 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:21 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:21 slawek kernel: Trying to fix it up, but a reboot is needed
Dec 9 16:53:21 slawek kernel: Bad page state at free_hot_cold_page (in
process 'xmms', page c12da8e0)
Dec 9 16:53:21 slawek kernel: flags:0x80000414 mapping:00000000
mapcount:0 count:0
Dec 9 16:53:21 slawek kernel: Backtrace:
Dec 9 16:53:21 slawek kernel: [<c013f2de>] bad_page+0x84/0xbc
Dec 9 16:53:21 slawek kernel: [<c013fabc>] free_hot_cold_page+0x55/0x144
Dec 9 16:53:21 slawek kernel: [<c014032c>] __pagevec_free+0x16/0x1e
Dec 9 16:53:21 slawek kernel: [<c0145e31>] release_pages+0x112/0x16b
Dec 9 16:53:21 slawek kernel: [<c01526a1>]
free_pages_and_swap_cache+0x5d/0x83
Dec 9 16:53:21 slawek kernel: [<c014e9c4>] unmap_region+0x122/0x138
Dec 9 16:53:21 slawek kernel: [<c014eca7>] do_munmap+0x10f/0x179
Dec 9 16:53:21 slawek kernel: [<c014ed5b>] sys_munmap+0x4a/0x6b
Dec 9 16:53:21 slawek kernel: [<c0102de9>] syscall_call+0x7/0xb
Dec 9 16:53:21 slawek kernel: Trying to fix it up, but a reboot is needed


2005-12-09 16:15:50

by Hugh Dickins

[permalink] [raw]
Subject: Re: Linux 2.6.15-rc5 and Alsa 1.0.10

On Fri, 9 Dec 2005, Jacek Luczak wrote:
>
> I'm using now 2.6.15-rc5 kernel with latest Alsa 1.0.10 and I received a lot
> of 'bad page state at free_hot_cold_page' (see example below) messages. Is
> this kernel or alsa error?
>
> System:
> Slackware Linux, GCC 3.4.4, Binutils 2.16.1.
> CPU: Pentium 4 3Ghz HT
> Sound card: CMI9880 (HDA)
>
> Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
> process 'xmms', page c12da9c0)
> Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000 mapcount:0
> count:0

I think that means you have a mismatch: that you're using core/memalloc.c
from alsa-driver-1.0.10/alsa-kernel rather than from 2.6.15-rc5/sound.
Applying the update below should eliminate your "Bad page state"s:
I've no idea whether there are other mismatches, quite possibly not.

Hugh

--- alsa-driver-1.0.10/alsa-kernel/core/memalloc.c 2005-10-31 13:11:53.000000000 +0000
+++ 2.6.15-rc5/sound/core/memalloc.c 2005-12-04 06:48:20.000000000 +0000
@@ -197,6 +197,7 @@ void *snd_malloc_pages(size_t size, gfp_

snd_assert(size > 0, return NULL);
snd_assert(gfp_flags != 0, return NULL);
+ gfp_flags |= __GFP_COMP; /* compound page lets parts be mapped */
pg = get_order(size);
if ((res = (void *) __get_free_pages(gfp_flags, pg)) != NULL) {
mark_pages(virt_to_page(res), pg);
@@ -241,6 +242,7 @@ static void *snd_malloc_dev_pages(struct
snd_assert(dma != NULL, return NULL);
pg = get_order(size);
gfp_flags = GFP_KERNEL
+ | __GFP_COMP /* compound page lets parts be mapped */
| __GFP_NORETRY /* don't trigger OOM-killer */
| __GFP_NOWARN; /* no stack trace print - this call is non-critical */
res = dma_alloc_coherent(dev, PAGE_SIZE << pg, dma, gfp_flags);

2005-12-09 16:46:01

by Jacek Luczak

[permalink] [raw]
Subject: Re: Linux 2.6.15-rc5 and Alsa 1.0.10

Hugh Dickins napisaƂ(a):
> On Fri, 9 Dec 2005, Jacek Luczak wrote:
>
>>I'm using now 2.6.15-rc5 kernel with latest Alsa 1.0.10 and I received a lot
>>of 'bad page state at free_hot_cold_page' (see example below) messages. Is
>>this kernel or alsa error?
>>
>>System:
>>Slackware Linux, GCC 3.4.4, Binutils 2.16.1.
>>CPU: Pentium 4 3Ghz HT
>>Sound card: CMI9880 (HDA)
>>
>>Dec 9 16:53:20 slawek kernel: Bad page state at free_hot_cold_page (in
>>process 'xmms', page c12da9c0)
>>Dec 9 16:53:20 slawek kernel: flags:0x80000414 mapping:00000000 mapcount:0
>>count:0
>
>
> I think that means you have a mismatch: that you're using core/memalloc.c
> from alsa-driver-1.0.10/alsa-kernel rather than from 2.6.15-rc5/sound.
> Applying the update below should eliminate your "Bad page state"s:
> I've no idea whether there are other mismatches, quite possibly not.
>
> Hugh
>

[snip]

Big thanks!!! It really helped.

J.L.