Re: BUG when trying to use deadline iosched in 3.16-rc1

From: Fabian Frederick
Date: Sat Jun 21 2014 - 05:51:24 EST


On Sat, 21 Jun 2014 11:37:47 +0200
Damien Wyart <damien.wyart@xxxxxxxxx> wrote:

> Hi,
>
> While testing 3.16-rc1, I got this error:
>
> Jun 21 11:19:03 brouette kernel: kernel tried to execute NX-protected
> page - exploit attempt? (uid: 0)
> Jun 21 11:19:03 brouette kernel: BUG: unable to handle kernel paging
> request at ffffffff8171a1f8
> Jun 21 11:19:03 brouette kernel: IP: [<ffffffff8171a1f8>] elv_register+0x0/0x197
> Jun 21 11:19:03 brouette kernel: PGD 163d067 PUD 163e063 PMD 1b887f063
> PTE 800000000171a163
> Jun 21 11:19:03 brouette kernel: Oops: 0011 [#1] PREEMPT SMP
> Jun 21 11:19:03 brouette kernel: Modules linked in: deadline_iosched(+)
> binfmt_misc hid_roccat_konepure hid_roccat hid_roccat_common hid_generic
> snd_usb_audio snd_usbmidi_lib usbhid snd_hwdep snd_hda_codec_realtek
> snd_hda_codec_generic nouveau wmi snd_ca0106 video snd_ac97_codec
> i2c_algo_bit ttm snd_seq_dummy ac97_bus snd_seq_midi drm_kms_helper
> snd_seq_oss drm snd_seq_midi_event i2c_core snd_seq pcspkr sr_mod
> backlight snd_hda_intel snd_rawmidi snd_hda_controller cdrom
> snd_hda_codec snd_seq_device snd_pcm_oss snd_mixer_oss uhci_hcd ehci_pci
> snd_pcm ehci_hcd nvidiafb snd_timer usbcore vgastate usb_common evdev
> acpi_cpufreq loop fuse autofs4
> Jun 21 11:19:03 brouette kernel: CPU: 1 PID: 2410 Comm: modprobe
> Tainted: P O 3.16.0-rc1 #1
> Jun 21 11:19:03 brouette kernel: Hardware name: System manufacturer
> System Product Name/P6T SE, BIOS 0808 03/08/2010
> Jun 21 11:19:03 brouette kernel: task: ffff8801b7c25b00 ti:
> ffff8801b4224000 task.ti: ffff8801b4224000
> Jun 21 11:19:03 brouette kernel: RIP: 0010:[<ffffffff8171a1f8>]
> [<ffffffff8171a1f8>] elv_register+0x0/0x197
> Jun 21 11:19:03 brouette kernel: RSP: 0018:ffff8801b4227d60 EFLAGS: 00010246
> Jun 21 11:19:03 brouette kernel: RAX: ffff8801b55a2101 RBX:
> ffffffff81641040 RCX: 0000000003be0001
> Jun 21 11:19:03 brouette kernel: RDX: 0000000003bde001 RSI:
> ffffffff815a9f0d RDI: ffffffffa103b880
> Jun 21 11:19:03 brouette kernel: RBP: ffff8801b4227d68 R08:
> 00000000000148e0 R09: 000000000000ffff
> Jun 21 11:19:03 brouette kernel: R10: 0000000000000012 R11:
> 0000000000011c00 R12: ffff8801b55a2980
> Jun 21 11:19:03 brouette kernel: R13: 0000000000000000 R14:
> ffffffffa103d000 R15: ffffffffa103ba40
> Jun 21 11:19:03 brouette kernel: FS: 00007f50c9669700(0000)
> GS:ffff8801bfc20000(0000) knlGS:0000000000000000
> Jun 21 11:19:03 brouette kernel: CS: 0010 DS: 0000 ES: 0000 CR0:
> 000000008005003b
> Jun 21 11:19:03 brouette kernel: CR2: ffffffff8171a1f8 CR3:
> 00000001b7b1c000 CR4: 00000000000007e0
> Jun 21 11:19:03 brouette kernel: Stack:
> Jun 21 11:19:03 brouette kernel: ffffffffa103d010 ffff8801b4227dd8
> ffffffff810002c4 0000000000000001
> Jun 21 11:19:03 brouette kernel: 0000000000000001 ffffffffa103ba40
> ffff8801b4227db8 ffffffff810ed74a
> Jun 21 11:19:03 brouette kernel: ffff8801b4227ef8 ffffffffa103ba58
> ffffffffa103ba90 ffff8801b4227ef8
> Jun 21 11:19:03 brouette kernel: Call Trace:
> Jun 21 11:19:03 brouette kernel: [<ffffffffa103d010>] ?
> deadline_init+0x10/0x12 [deadline_iosched]
> Jun 21 11:19:03 brouette kernel: [<ffffffff810002c4>] do_one_initcall+0x84/0x1c0
> Jun 21 11:19:03 brouette kernel: [<ffffffff810ed74a>] ? __vunmap+0x9a/0x100
> Jun 21 11:19:03 brouette kernel: [<ffffffff810a23ac>] load_module+0x19bc/0x2160
> Jun 21 11:19:03 brouette kernel: [<ffffffff8109fb90>] ?
> symbol_put_addr+0x40/0x40
> Jun 21 11:19:03 brouette kernel: [<ffffffff810a2c86>] SyS_finit_module+0x76/0x80
> Jun 21 11:19:03 brouette kernel: [<ffffffff814a8692>]
> system_call_fastpath+0x16/0x1b
> Jun 21 11:19:03 brouette kernel: Code: 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 <00> 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00
> Jun 21 11:19:03 brouette kernel: RIP [<ffffffff8171a1f8>]
> elv_register+0x0/0x197
> Jun 21 11:19:03 brouette kernel: RSP <ffff8801b4227d60>
> Jun 21 11:19:03 brouette kernel: CR2: ffffffff8171a1f8
> Jun 21 11:19:03 brouette kernel: ---[ end trace 5bbf40f5ac5f66e3 ]---
> Jun 21 11:19:03 brouette kernel: elevator: type deadline not found
> Jun 21 11:19:03 brouette kernel: elevator: switch to deadline
>
> My startup scripts do this:
>
> echo "noop" > /sys/block/sda/queue/scheduler
> echo "deadline" > /sys/block/sdb/queue/scheduler
> echo "noop" > /sys/block/sdc/queue/scheduler
> echo "deadline" > /sys/block/sdd/queue/scheduler
>
> And the relevant part of my .config:
>
> CONFIG_IOSCHED_NOOP=y
> CONFIG_IOSCHED_DEADLINE=m
> CONFIG_IOSCHED_CFQ=y
> CONFIG_CFQ_GROUP_IOSCHED=y
> CONFIG_DEFAULT_IOSCHED="cfq"
>
>
> Maybe related to b5097e956a ?
>
> No problem with 3.15.

It seems you're right. I didn't know that parameter could be updated dynamically.
In that case, adding __init to elv_register was a bad idea because it's no more
reliable. Could you revert that patch Jens ?

Thanks,
Fabian


>
> Thanks,
> --
> Damien Wyart
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/