From: Fengguang Wu <fengguang.wu@intel.com>
To: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [vt_console_print/cirrus_dirty_update] WARNING: at kernel/mutex.c:858 mutex_trylock()
Date: Thu, 6 Jun 2013 15:28:56 +0800 [thread overview]
Message-ID: <20130606072856.GA32274@localhost> (raw)
In-Reply-To: <51B038E3.30800@canonical.com>
Hi Maarten,
Thanks for the patch! I'll queue it for the tests.
Thanks,
Fengguang
On Thu, Jun 06, 2013 at 09:23:15AM +0200, Maarten Lankhorst wrote:
> Hey,
>
> Op 06-06-13 03:35, Fengguang Wu schreef:
> > Greetings,
> >
> > I got the below dmesg and the first bad commit is
> >
> > commit 3d71c6ed43d838e593538176a9a59debe228cfb0
> > Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
> > Date: Tue Apr 2 12:33:01 2013 +0200
> >
> > drm/ttm: convert to the reservation api
> >
> > Now that the code is compatible in semantics, flip the switch.
> > Use ww_mutex instead of the homegrown implementation.
> >
> > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
> >
> > [ 13.044298] printing local APIC contents on CPU#0/0:
> > [ 13.044313] ------------[ cut here ]------------
> > [ 13.044367] WARNING: at /c/kernel-tests/src/tip/kernel/mutex.c:858 mutex_trylock+0x87/0x220()
> > [ 13.044378] DEBUG_LOCKS_WARN_ON(in_interrupt())
> > [ 13.044378] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc4-00296-ga2963dd #20
> > [ 13.044379] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
> > [ 13.044390] 0000000000000009 ffff88000de039f8 ffffffff81fc86d5 ffff88000de03a38
> > [ 13.044395] ffffffff810d511b ffff880000000018 ffff88000f33c690 0000000000000001
> > [ 13.044398] 00000000000003f0 ffff88000f4677c8 0000000000000000 ffff88000de03a98
> > [ 13.044400] Call Trace:
> > [ 13.044412] <IRQ> [<ffffffff81fc86d5>] dump_stack+0x19/0x1b
> > [ 13.044441] [<ffffffff810d511b>] warn_slowpath_common+0x6b/0x90
> > [ 13.044445] [<ffffffff810d51a6>] warn_slowpath_fmt+0x46/0x50
> > [ 13.044448] [<ffffffff81fd34d7>] mutex_trylock+0x87/0x220
> > [ 13.044482] [<ffffffff8186484d>] cirrus_dirty_update+0x1cd/0x330
> > [ 13.044486] [<ffffffff818649e8>] cirrus_imageblit+0x38/0x50
> > [ 13.044506] [<ffffffff8165782e>] soft_cursor+0x22e/0x240
> > [ 13.044510] [<ffffffff81656c31>] bit_cursor+0x581/0x5b0
> > [ 13.044525] [<ffffffff815de9f4>] ? vsnprintf+0x124/0x670
> > [ 13.044529] [<ffffffff81651333>] ? get_color.isra.16+0x43/0x130
> > [ 13.044532] [<ffffffff81653fca>] fbcon_cursor+0x18a/0x1d0
> > [ 13.044535] [<ffffffff816566b0>] ? update_attr.isra.2+0xa0/0xa0
> > [ 13.044556] [<ffffffff81754b82>] hide_cursor+0x32/0xa0
> > [ 13.044565] [<ffffffff81755bd3>] vt_console_print+0x103/0x3b0
> > [ 13.044569] [<ffffffff810d58ac>] ? print_time+0x9c/0xb0
> > [ 13.044576] [<ffffffff810d5960>] ? print_prefix+0xa0/0xc0
> > [ 13.044580] [<ffffffff810d63f6>] call_console_drivers.constprop.6+0x146/0x1f0
> > [ 13.044593] [<ffffffff815f9b38>] ? do_raw_spin_unlock+0xc8/0x100
> > [ 13.044597] [<ffffffff810d6f27>] console_unlock+0x2f7/0x460
> > [ 13.044600] [<ffffffff810d787a>] vprintk_emit+0x59a/0x5e0
> > [ 13.044615] [<ffffffff81fb676c>] printk+0x4d/0x4f
> > [ 13.044650] [<ffffffff82ba5511>] print_local_APIC+0x28/0x41c
> > [ 13.044672] [<ffffffff8114db55>] generic_smp_call_function_single_interrupt+0x145/0x2b0
> > [ 13.044688] [<ffffffff8106f9e7>] smp_call_function_single_interrupt+0x27/0x40
> > [ 13.044697] [<ffffffff81fd8f72>] call_function_single_interrupt+0x72/0x80
> > [ 13.044707] <EOI> [<ffffffff81078166>] ? native_safe_halt+0x6/0x10
> > [ 13.044717] [<ffffffff811425cd>] ? trace_hardirqs_on+0xd/0x10
> > [ 13.044738] [<ffffffff8104f669>] default_idle+0x59/0x120
> > [ 13.044742] [<ffffffff810501e8>] arch_cpu_idle+0x18/0x40
> > [ 13.044754] [<ffffffff811320c5>] cpu_startup_entry+0x235/0x410
> > [ 13.044763] [<ffffffff81f9e781>] rest_init+0xd1/0xe0
> > [ 13.044766] [<ffffffff81f9e6b5>] ? rest_init+0x5/0xe0
> > [ 13.044778] [<ffffffff82b93ec2>] start_kernel+0x425/0x493
> > [ 13.044781] [<ffffffff82b93810>] ? repair_env_string+0x5e/0x5e
> > [ 13.044786] [<ffffffff82b93595>] x86_64_start_reservations+0x2a/0x2c
> > [ 13.044789] [<ffffffff82b93688>] x86_64_start_kernel+0xf1/0x100
> > [ 13.044799] ---[ end trace 113ad28772af4058 ]---
> Thanks for catching this, I'm uncertain how to proceed here. Can you try below patch?
>
> diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
> index 3541b56..b27e956 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
> +++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
> @@ -25,7 +25,7 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
> struct cirrus_bo *bo;
> int src_offset, dst_offset;
> int bpp = (afbdev->gfb.base.bits_per_pixel + 7)/8;
> - int ret;
> + int ret = -EBUSY;
> bool unmap = false;
> bool store_for_later = false;
> int x2, y2;
> @@ -39,7 +39,8 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
> * then the BO is being moved and we should
> * store up the damage until later.
> */
> - ret = cirrus_bo_reserve(bo, true);
> + if (!in_interrupt())
> + ret = cirrus_bo_reserve(bo, true);
> if (ret) {
> if (ret != -EBUSY)
> return;
next prev parent reply other threads:[~2013-06-06 7:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 1:35 [vt_console_print/cirrus_dirty_update] WARNING: at kernel/mutex.c:858 mutex_trylock() Fengguang Wu
2013-06-06 7:23 ` Maarten Lankhorst
2013-06-06 7:28 ` Fengguang Wu [this message]
2013-06-09 6:58 ` Maarten Lankhorst
2013-06-10 1:55 ` [inconsistent HARDIRQ usage] &dev->mode_config.idr_mutex at drm_mode_object_find() Fengguang Wu
2013-06-10 7:04 ` Maarten Lankhorst
2013-06-10 7:24 ` Daniel Vetter
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=20130606072856.GA32274@localhost \
--to=fengguang.wu@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@canonical.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.