2008-12-03 12:13:56

by Mark Jackson

[permalink] [raw]
Subject: Badness at mm/backing-dev.c:179

The following commit causes a "Badness at mm/backing-dev.c:179":-

f1d0b063d993527754f062c589b73f125024d216 is first bad commit
commit f1d0b063d993527754f062c589b73f125024d216
Author: Kay Sievers <[email protected]>
Date: Tue Dec 2 10:31:50 2008 -0800

bdi: register sysfs bdi device only once per queue

<snip>

Tested-by: Peter Korsgaard <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Signed-off-by: Kay Sievers <[email protected]>
Cc: David Woodhouse <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>

Below is the extract from dmesg:-

physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 4 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007e0000 : "root"
------------[ cut here ]------------
Badness at mm/backing-dev.c:179
PC is at bdi_register+0xe/0x44
LR is at bdi_register_dev+0x16/0x20
pc : [<9003f07a>] lr : [<9003f0c6>] Not tainted
sp : 91c19ccc r12: 91c5409c r11: 00000000
r10: 901c56c8 r9 : 0000001f r8 : 00000001
r7 : 91c19cd0 r6 : 91c5409c r5 : 91d0bc00 r4 : 00000000
r3 : 91e9b200 r2 : 901fd3fc r1 : 00000001 r0 : 00000004
Flags: qvNzc
Mode bits: hjmde....g
CPU Mode: Supervisor
Process: swapper [1] (task: 91c16000 thread: 91c18000)
Call trace:
[<9003f0c6>] bdi_register_dev+0x16/0x20
[<900d7cc4>] add_disk+0x88/0xb0
[<90100148>] add_mtd_blktrans_dev+0x178/0x188
[<901004ea>] mtdblock_add_mtd+0x36/0x3c
[<900ffec4>] blktrans_notify_add+0x1a/0x3a
[<900fe16c>] add_mtd_device+0x60/0xa0
[<900fef2e>] add_mtd_partitions+0x37e/0x3a4
[<90105614>] physmap_flash_probe+0x1ec/0x21c
[<900f9eb4>] platform_drv_probe+0x10/0x12
[<900f9680>] driver_probe_device+0x84/0xf0
[<900f9726>] __driver_attach+0x3a/0x50
[<900f904a>] bus_for_each_dev+0x2e/0x4c
[<900f9566>] driver_attach+0x12/0x14
[<900f9324>] bus_add_driver+0x6c/0x170
[<900f9860>] driver_register+0x58/0xb0
[<900fa0b6>] platform_driver_register+0x56/0x5c
[<9000adca>] physmap_init+0xa/0x10
[<900146da>] do_one_initcall+0x36/0x10c
[<90000380>] kernel_init+0x48/0x94
[<9001fca0>] do_exit+0x0/0x49c

0x007e0000-0x007f0000 : "splash"
------------[ cut here ]------------
Badness at mm/backing-dev.c:179
PC is at bdi_register+0xe/0x44
LR is at bdi_register_dev+0x16/0x20
pc : [<9003f07a>] lr : [<9003f0c6>] Tainted: G W
sp : 91c19ccc r12: 91c5409c r11: 00000000
r10: 901c56c8 r9 : 0000001f r8 : 00000002
r7 : 91c19cd0 r6 : 91c5409c r5 : 91d0bc00 r4 : 00000000
r3 : 91e9b800 r2 : 901fd414 r1 : 00000002 r0 : 00000004
Flags: qvNzc
Mode bits: hjmde....g
CPU Mode: Supervisor
Process: swapper [1] (task: 91c16000 thread: 91c18000)
Call trace:
[<9003f0c6>] bdi_register_dev+0x16/0x20
[<900d7cc4>] add_disk+0x88/0xb0
[<90100148>] add_mtd_blktrans_dev+0x178/0x188
[<901004ea>] mtdblock_add_mtd+0x36/0x3c
[<900ffec4>] blktrans_notify_add+0x1a/0x3a
[<900fe16c>] add_mtd_device+0x60/0xa0
[<900fef2e>] add_mtd_partitions+0x37e/0x3a4
[<90105614>] physmap_flash_probe+0x1ec/0x21c
[<900f9eb4>] platform_drv_probe+0x10/0x12
[<900f9680>] driver_probe_device+0x84/0xf0
[<900f9726>] __driver_attach+0x3a/0x50
[<900f904a>] bus_for_each_dev+0x2e/0x4c
[<900f9566>] driver_attach+0x12/0x14
[<900f9324>] bus_add_driver+0x6c/0x170
[<900f9860>] driver_register+0x58/0xb0
[<900fa0b6>] platform_driver_register+0x56/0x5c
[<9000adca>] physmap_init+0xa/0x10
[<900146da>] do_one_initcall+0x36/0x10c
[<90000380>] kernel_init+0x48/0x94
[<9001fca0>] do_exit+0x0/0x49c

0x007f0000-0x00800000 : "env"
------------[ cut here ]------------
Badness at mm/backing-dev.c:179
PC is at bdi_register+0xe/0x44
LR is at bdi_register_dev+0x16/0x20
pc : [<9003f07a>] lr : [<9003f0c6>] Tainted: G W
sp : 91c19ccc r12: 91c5409c r11: 00000000
r10: 901c56c8 r9 : 0000001f r8 : 00000003
r7 : 91c19cd0 r6 : 91c5409c r5 : 91d0bc00 r4 : 00000000
r3 : 91e9be00 r2 : 901fd42c r1 : 00000003 r0 : 00000004
Flags: qvNzc
Mode bits: hjmde....g
CPU Mode: Supervisor
Process: swapper [1] (task: 91c16000 thread: 91c18000)
Call trace:
[<9003f0c6>] bdi_register_dev+0x16/0x20
[<900d7cc4>] add_disk+0x88/0xb0
[<90100148>] add_mtd_blktrans_dev+0x178/0x188
[<901004ea>] mtdblock_add_mtd+0x36/0x3c
[<900ffec4>] blktrans_notify_add+0x1a/0x3a
[<900fe16c>] add_mtd_device+0x60/0xa0
[<900fef2e>] add_mtd_partitions+0x37e/0x3a4
[<90105614>] physmap_flash_probe+0x1ec/0x21c
[<900f9eb4>] platform_drv_probe+0x10/0x12
[<900f9680>] driver_probe_device+0x84/0xf0
[<900f9726>] __driver_attach+0x3a/0x50
[<900f904a>] bus_for_each_dev+0x2e/0x4c
[<900f9566>] driver_attach+0x12/0x14
[<900f9324>] bus_add_driver+0x6c/0x170
[<900f9860>] driver_register+0x58/0xb0
[<900fa0b6>] platform_driver_register+0x56/0x5c
[<9000adca>] physmap_init+0xa/0x10
[<900146da>] do_one_initcall+0x36/0x10c
[<90000380>] kernel_init+0x48/0x94
[<9001fca0>] do_exit+0x0/0x49c

physmap platform flash device: 00800000 at 08000000
physmap-flash.1: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 1 MTD partitions on "physmap-flash.1":
0x00000000-0x00800000 : "data"
------------[ cut here ]------------
Badness at mm/backing-dev.c:179
PC is at bdi_register+0xe/0x44
LR is at bdi_register_dev+0x16/0x20
pc : [<9003f07a>] lr : [<9003f0c6>] Tainted: G W
sp : 91c19ccc r12: 91c5409c r11: 00000000
r10: 901c56c8 r9 : 0000001f r8 : 00000004
r7 : 91c19cd0 r6 : 91c5409c r5 : 91d0bc00 r4 : 00000000
r3 : 91cb9400 r2 : 901fd444 r1 : 00000000 r0 : 00000001
Flags: qvNzc
Mode bits: hjmde....g
CPU Mode: Supervisor
Process: swapper [1] (task: 91c16000 thread: 91c18000)
Call trace:
[<9003f0c6>] bdi_register_dev+0x16/0x20
[<900d7cc4>] add_disk+0x88/0xb0
[<90100148>] add_mtd_blktrans_dev+0x178/0x188
[<901004ea>] mtdblock_add_mtd+0x36/0x3c
[<900ffec4>] blktrans_notify_add+0x1a/0x3a
[<900fe16c>] add_mtd_device+0x60/0xa0
[<900fef2e>] add_mtd_partitions+0x37e/0x3a4
[<90105614>] physmap_flash_probe+0x1ec/0x21c
[<900f9eb4>] platform_drv_probe+0x10/0x12
[<900f9680>] driver_probe_device+0x84/0xf0
[<900f9726>] __driver_attach+0x3a/0x50
[<900f904a>] bus_for_each_dev+0x2e/0x4c
[<900f9566>] driver_attach+0x12/0x14
[<900f9324>] bus_add_driver+0x6c/0x170
[<900f9860>] driver_register+0x58/0xb0
[<900fa0b6>] platform_driver_register+0x56/0x5c
[<9000adca>] physmap_init+0xa/0x10
[<900146da>] do_one_initcall+0x36/0x10c
[<90000380>] kernel_init+0x48/0x94
[<9001fca0>] do_exit+0x0/0x49c

Regards
Mark


2008-12-03 12:22:59

by Kay Sievers

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
> The following commit causes a "Badness at mm/backing-dev.c:179":-
>
> f1d0b063d993527754f062c589b73f125024d216 is first bad commit
> commit f1d0b063d993527754f062c589b73f125024d216
> Author: Kay Sievers <[email protected]>
> Date: Tue Dec 2 10:31:50 2008 -0800
>
> bdi: register sysfs bdi device only once per queue

> Below is the extract from dmesg:-
>
> ------------[ cut here ]------------
> Badness at mm/backing-dev.c:179

That's a known issue, and will not cause any harm besides printing
this warning. Andrew added the warning to catch drivers who use one
single request queue for multiple devices. Currently known are mtd and
floppy (triggers only if you have more than one device per driver).
The drivers need to be changed to use a separate queue per device, to
get rid of this warning.

Thanks,
Kay

2008-12-03 12:26:43

by Mark Jackson

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

Kay Sievers wrote:
> On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
>> The following commit causes a "Badness at mm/backing-dev.c:179":-
>>
>> f1d0b063d993527754f062c589b73f125024d216 is first bad commit
>> commit f1d0b063d993527754f062c589b73f125024d216
>> Author: Kay Sievers <[email protected]>
>> Date: Tue Dec 2 10:31:50 2008 -0800
>>
>> bdi: register sysfs bdi device only once per queue
>
>> Below is the extract from dmesg:-
>>
>> ------------[ cut here ]------------
>> Badness at mm/backing-dev.c:179
>
> That's a known issue, and will not cause any harm besides printing
> this warning. Andrew added the warning to catch drivers who use one
> single request queue for multiple devices. Currently known are mtd and
> floppy (triggers only if you have more than one device per driver).
> The drivers need to be changed to use a separate queue per device, to
> get rid of this warning.

Okay ... thanks for the info.

Mark

2008-12-03 19:07:13

by Andrew Morton

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

On Wed, 3 Dec 2008 13:22:47 +0100 "Kay Sievers" <[email protected]> wrote:

> On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
> > The following commit causes a "Badness at mm/backing-dev.c:179":-
> >
> > f1d0b063d993527754f062c589b73f125024d216 is first bad commit
> > commit f1d0b063d993527754f062c589b73f125024d216
> > Author: Kay Sievers <[email protected]>
> > Date: Tue Dec 2 10:31:50 2008 -0800
> >
> > bdi: register sysfs bdi device only once per queue
>
> > Below is the extract from dmesg:-
> >
> > ------------[ cut here ]------------
> > Badness at mm/backing-dev.c:179
>
> That's a known issue, and will not cause any harm besides printing
> this warning. Andrew added the warning to catch drivers who use one
> single request queue for multiple devices. Currently known are mtd and
> floppy (triggers only if you have more than one device per driver).
> The drivers need to be changed to use a separate queue per device, to
> get rid of this warning.

Actually, adding that warning wasn't such a great idea - we'll just get
heaps of email about things we already know about. I think I'll take
it out again.

Which means this stuff won't get fixed for ages :(

2008-12-08 08:16:53

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

On Wed, 3 Dec 2008, Kay Sievers wrote:
> On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
> > The following commit causes a "Badness at mm/backing-dev.c:179":-
> >
> > f1d0b063d993527754f062c589b73f125024d216 is first bad commit
> > commit f1d0b063d993527754f062c589b73f125024d216
> > Author: Kay Sievers <[email protected]>
> > Date: Tue Dec 2 10:31:50 2008 -0800
> >
> > bdi: register sysfs bdi device only once per queue
>
> > Below is the extract from dmesg:-
> >
> > ------------[ cut here ]------------
> > Badness at mm/backing-dev.c:179
>
> That's a known issue, and will not cause any harm besides printing
> this warning. Andrew added the warning to catch drivers who use one
> single request queue for multiple devices. Currently known are mtd and
> floppy (triggers only if you have more than one device per driver).
> The drivers need to be changed to use a separate queue per device, to
> get rid of this warning.

I guess this one (introduced after 2.6.28-rc7) is an incarnation of the same
issue?

WARNING: at mm/backing-dev.c:179 0x2069cb()
Modules linked in:
Call Trace: [<000273ee>] warn_on_slowpath+0x44/0x60
[<001be5b0>] mutex_lock+0x0/0x24
[<00075d1e>] ifind+0x16/0x5c
[<000a0844>] sysfs_ilookup_test+0x0/0x18
[<00075d92>] ilookup5+0x2e/0x38
[<000a0e70>] sysfs_addrm_finish+0x1c/0x200
[<000a047e>] sysfs_create_file+0x0/0x44
[<000a0432>] sysfs_add_file_mode+0x5a/0x84
[<000efc5a>] kobject_uevent_env+0x46/0x30c
[<000a047e>] sysfs_create_file+0x0/0x44
[<000a0478>] sysfs_add_file+0x1c/0x22
[<000eff30>] kobject_uevent+0x10/0x16
[<000e1332>] elv_register_queue+0x64/0x6e
[<000eff20>] kobject_uevent+0x0/0x16
[<000e450e>] blk_register_queue+0x56/0x94
[<00051684>] bdi_register+0x54/0x5e
[<000f4040>] sprintf+0x0/0x26
[<000516b4>] bdi_register_dev+0x26/0x2c
[<000e7e70>] add_disk+0xb8/0x12c
[<000e7db8>] add_disk+0x0/0x12c
[<0027e424>] atari_floppy_init+0x14c/0x6e4
[<0027e2d8>] atari_floppy_init+0x0/0x6e4
[<00002008>] do_one_initcall+0x0/0x19a
[<002781ce>] __alloc_bootmem+0x0/0x1a
[<00002024>] do_one_initcall+0x1c/0x19a
[<001be5b0>] mutex_lock+0x0/0x24
[<00075d1e>] ifind+0x16/0x5c
[<000a0844>] sysfs_ilookup_test+0x0/0x18
[<00075d92>] ilookup5+0x2e/0x38
[<000a0e70>] sysfs_addrm_finish+0x1c/0x200
[<002781ce>] __alloc_bootmem+0x0/0x1a
[<000a0432>] sysfs_add_file_mode+0x5a/0x84
[<001244aa>] sysdev_class_create_file+0x0/0x16
[<000a0478>] sysfs_add_file+0x1c/0x22
[<000a04bc>] sysfs_create_file+0x3e/0x44
[<001244bc>] sysdev_class_create_file+0x12/0x16
[<0027e102>] cpu_dev_init+0x4e/0x6c
[<0026eaa8>] kernel_init+0x6e/0xc2
[<0027e2d8>] atari_floppy_init+0x0/0x6e4
[<0026ea3a>] kernel_init+0x0/0xc2
[<00027902>] printk+0x0/0x1a
[<00002ada>] kernel_thread+0x3a/0x4e

---[ end trace 7d0e1e0e92952ce0 ]---

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2008-12-08 12:42:42

by Kay Sievers

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

On Mon, Dec 8, 2008 at 09:16, Geert Uytterhoeven <[email protected]> wrote:
> On Wed, 3 Dec 2008, Kay Sievers wrote:
>> On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
>> > The following commit causes a "Badness at mm/backing-dev.c:179":-
>> >
>> > f1d0b063d993527754f062c589b73f125024d216 is first bad commit
>> > commit f1d0b063d993527754f062c589b73f125024d216
>> > Author: Kay Sievers <[email protected]>
>> > Date: Tue Dec 2 10:31:50 2008 -0800
>> >
>> > bdi: register sysfs bdi device only once per queue
>>
>> > Below is the extract from dmesg:-
>> >
>> > ------------[ cut here ]------------
>> > Badness at mm/backing-dev.c:179
>>
>> That's a known issue, and will not cause any harm besides printing
>> this warning. Andrew added the warning to catch drivers who use one
>> single request queue for multiple devices. Currently known are mtd and
>> floppy (triggers only if you have more than one device per driver).
>> The drivers need to be changed to use a separate queue per device, to
>> get rid of this warning.
>
> I guess this one (introduced after 2.6.28-rc7) is an incarnation of the same
> issue?

You have more than one floppy device registered at the same time,
right? Then it's very likely the same issue, that both devices share
the same request queue, like the x86 floppy.c.

Kay

2008-12-08 12:54:59

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: Badness at mm/backing-dev.c:179

On Mon, 8 Dec 2008, Kay Sievers wrote:
> On Mon, Dec 8, 2008 at 09:16, Geert Uytterhoeven <[email protected]> wrote:
> > On Wed, 3 Dec 2008, Kay Sievers wrote:
> >> On Wed, Dec 3, 2008 at 13:07, Mark Jackson <[email protected]> wrote:
> >> > The following commit causes a "Badness at mm/backing-dev.c:179":-
> >> >
> >> > f1d0b063d993527754f062c589b73f125024d216 is first bad commit
> >> > commit f1d0b063d993527754f062c589b73f125024d216
> >> > Author: Kay Sievers <[email protected]>
> >> > Date: Tue Dec 2 10:31:50 2008 -0800
> >> >
> >> > bdi: register sysfs bdi device only once per queue
> >>
> >> > Below is the extract from dmesg:-
> >> >
> >> > ------------[ cut here ]------------
> >> > Badness at mm/backing-dev.c:179
> >>
> >> That's a known issue, and will not cause any harm besides printing
> >> this warning. Andrew added the warning to catch drivers who use one
> >> single request queue for multiple devices. Currently known are mtd and
> >> floppy (triggers only if you have more than one device per driver).
> >> The drivers need to be changed to use a separate queue per device, to
> >> get rid of this warning.
> >
> > I guess this one (introduced after 2.6.28-rc7) is an incarnation of the same
> > issue?
>
> You have more than one floppy device registered at the same time,
> right? Then it's very likely the same issue, that both devices share
> the same request queue, like the x86 floppy.c.

Yep, ataflop.c (and amiflop.c) forked from floppy.c a long time ago...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds