All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michel Dänzer" <michel@daenzer.net>
To: "Christian König" <christian.koenig@amd.com>,
	"Alex Deucher" <alexdeucher@gmail.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH 1/3] drm/radeon: stop poisoning the GART TLB
Date: Tue, 24 Jun 2014 15:49:45 +0900	[thread overview]
Message-ID: <53A91F89.7090504@daenzer.net> (raw)
In-Reply-To: <53A7F9E1.8080700@amd.com>

[-- Attachment #1: Type: text/plain, Size: 1308 bytes --]

On 23.06.2014 18:56, Christian König wrote:
> Am 23.06.2014 10:15, schrieb Michel Dänzer:
>> On 19.06.2014 18:45, Christian König wrote:
>>
>>> I think even when we revert to the old code we have a couple of unsolved
>>> problems with the VM support or in the driver in general where we should
>>> try to understand the underlying reason for it instead of applying more
>>> workarounds.
>> I'm not suggesting applying more workarounds but going back to a known
>> more stable state. It seems like we've maneuvered ourselves to a rather
>> uncomfortable position from there, with no clear way to a better place.
>> But if we basically started from the 3.14 state again, we have a few
>> known hurdles like mine and Marek's Bonaire etc. which we know any
>> further improvements will have to pass before they can be considered for
>> general consumption.
> 
> Yeah agree, especially on the uncomfortable position.
> 
> Please try with the two attached patches applied on top of 3.15 and
> retest. They should revert back to the old implementation.

Unfortunately, X fails to start with these, see the attached excerpt
from dmesg.


-- 
Earthling Michel Dänzer            |                  http://www.amd.com
Libre software enthusiast          |                Mesa and X developer

[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 10839 bytes --]

[    5.401968] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.402095] radeon 0000:01:00.0: still active bo inside vm
[    5.402132] 
[    5.402141] ======================================================
[    5.402171] [ INFO: possible circular locking dependency detected ]
[    5.402202] 3.15.0 #133 Tainted: G           O 
[    5.402225] -------------------------------------------------------
[    5.402251] Xorg/855 is trying to acquire lock:
[    5.402272]  (reservation_ww_class_mutex){+.+.+.}, at: [<ffffffffa03387f7>] radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.402340] 
[    5.402340] but task is already holding lock:
[    5.402366]  (&vm->mutex){+.+...}, at: [<ffffffffa0338762>] radeon_vm_fini+0x3a/0x1b6 [radeon]
[    5.402424] 
[    5.402424] which lock already depends on the new lock.
[    5.402424] 
[    5.402463] 
[    5.402463] the existing dependency chain (in reverse order) is:
[    5.402500] 
[    5.402500] -> #1 (&vm->mutex){+.+...}:
[    5.402528]        [<ffffffff81076fe0>] lock_acquire+0xa1/0x111
[    5.402561]        [<ffffffff813c2dc8>] mutex_lock_nested+0x72/0x3c6
[    5.402597]        [<ffffffffa0337eb3>] radeon_vm_bo_add+0x7b/0xbd [radeon]
[    5.402638]        [<ffffffffa029c522>] radeon_driver_open_kms+0xa0/0x174 [radeon]
[    5.402679]        [<ffffffffa01b57b7>] drm_open+0x230/0x456 [drm]
[    5.402717]        [<ffffffffa01b5a8a>] drm_stub_open+0xad/0xde [drm]
[    5.402755]        [<ffffffff8113049f>] chrdev_open+0x143/0x169
[    5.402792]        [<ffffffff8112b6e5>] do_dentry_open+0x223/0x238
[    5.402824]        [<ffffffff8112b728>] finish_open+0x2e/0x38
[    5.402854]        [<ffffffff811381f4>] do_last+0x846/0xa01
[    5.402886]        [<ffffffff811385e4>] path_openat+0x235/0x4ef
[    5.402917]        [<ffffffff811399c1>] do_filp_open+0x35/0x7a
[    5.402948]        [<ffffffff8112c135>] do_sys_open+0x6b/0xfa
[    5.402975]        [<ffffffff8112c1dd>] SyS_open+0x19/0x1b
[    5.403004]        [<ffffffff813cbb22>] system_call_fastpath+0x16/0x1b
[    5.403038] 
[    5.403038] -> #0 (reservation_ww_class_mutex){+.+.+.}:
[    5.403071]        [<ffffffff81076a0e>] __lock_acquire+0xae5/0xd9c
[    5.403103]        [<ffffffff81076fe0>] lock_acquire+0xa1/0x111
[    5.403132]        [<ffffffff813c392c>] mutex_lock_interruptible_nested+0x72/0x3d5
[    5.403168]        [<ffffffffa03387f7>] radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.403212]        [<ffffffffa029c5b5>] radeon_driver_open_kms+0x133/0x174 [radeon]
[    5.403253]        [<ffffffffa01b57b7>] drm_open+0x230/0x456 [drm]
[    5.403289]        [<ffffffffa01b5a8a>] drm_stub_open+0xad/0xde [drm]
[    5.403325]        [<ffffffff8113049f>] chrdev_open+0x143/0x169
[    5.403356]        [<ffffffff8112b6e5>] do_dentry_open+0x223/0x238
[    5.403389]        [<ffffffff8112b728>] finish_open+0x2e/0x38
[    5.403417]        [<ffffffff811381f4>] do_last+0x846/0xa01
[    5.403446]        [<ffffffff811385e4>] path_openat+0x235/0x4ef
[    5.403478]        [<ffffffff811399c1>] do_filp_open+0x35/0x7a
[    5.403508]        [<ffffffff8112c135>] do_sys_open+0x6b/0xfa
[    5.403537]        [<ffffffff8112c1dd>] SyS_open+0x19/0x1b
[    5.403567]        [<ffffffff813cbb22>] system_call_fastpath+0x16/0x1b
[    5.403597] 
[    5.403597] other info that might help us debug this:
[    5.403597] 
[    5.403632]  Possible unsafe locking scenario:
[    5.403632] 
[    5.403660]        CPU0                    CPU1
[    5.404874]        ----                    ----
[    5.406077]   lock(&vm->mutex);
[    5.407250]                                lock(reservation_ww_class_mutex);
[    5.408449]                                lock(&vm->mutex);
[    5.409601]   lock(reservation_ww_class_mutex);
[    5.410759] 
[    5.410759]  *** DEADLOCK ***
[    5.410759] 
[    5.414095] 2 locks held by Xorg/855:
[    5.415180]  #0:  (drm_global_mutex){+.+.+.}, at: [<ffffffffa01b5a1a>] drm_stub_open+0x3d/0xde [drm]
[    5.416333]  #1:  (&vm->mutex){+.+...}, at: [<ffffffffa0338762>] radeon_vm_fini+0x3a/0x1b6 [radeon]
[    5.417487] 
[    5.417487] stack backtrace:
[    5.419659] CPU: 2 PID: 855 Comm: Xorg Tainted: G           O  3.15.0 #133
[    5.420762] Hardware name: System manufacturer System Product Name/A88X-PRO, BIOS 1001 04/01/2014
[    5.421898]  0000000000000000 ffff88021150b9a0 ffffffff813c03cc ffffffff81fad2d0
[    5.423030]  ffff88021150b9e0 ffffffff813bda7b ffff88020fc7ca10 ffff88020fc7ca10
[    5.424129]  ffff88020fc7d338 0000000000000002 ffff88020fc7d370 0000000000000002
[    5.425225] Call Trace:
[    5.426335]  [<ffffffff813c03cc>] dump_stack+0x4d/0x66
[    5.427411]  [<ffffffff813bda7b>] print_circular_bug+0x1f6/0x204
[    5.428465]  [<ffffffff81076a0e>] __lock_acquire+0xae5/0xd9c
[    5.429540]  [<ffffffff81008972>] ? native_sched_clock+0x3a/0x3c
[    5.430608]  [<ffffffff81076fe0>] lock_acquire+0xa1/0x111
[    5.431710]  [<ffffffffa03387f7>] ? radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.432809]  [<ffffffff813c392c>] mutex_lock_interruptible_nested+0x72/0x3d5
[    5.433903]  [<ffffffffa03387f7>] ? radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.434988]  [<ffffffff812a3698>] ? dev_err+0x57/0x59
[    5.436096]  [<ffffffffa03387f7>] ? radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.437147]  [<ffffffffa03387f7>] radeon_vm_fini+0xcf/0x1b6 [radeon]
[    5.438204]  [<ffffffffa029c5b5>] radeon_driver_open_kms+0x133/0x174 [radeon]
[    5.439254]  [<ffffffffa01b57b7>] drm_open+0x230/0x456 [drm]
[    5.440354]  [<ffffffffa01b5a8a>] drm_stub_open+0xad/0xde [drm]
[    5.441425]  [<ffffffff8113049f>] chrdev_open+0x143/0x169
[    5.442485]  [<ffffffff8113035c>] ? cdev_put+0x1e/0x1e
[    5.443551]  [<ffffffff8112b6e5>] do_dentry_open+0x223/0x238
[    5.444604]  [<ffffffff8112b728>] finish_open+0x2e/0x38
[    5.445676]  [<ffffffff811381f4>] do_last+0x846/0xa01
[    5.446740]  [<ffffffff811385e4>] path_openat+0x235/0x4ef
[    5.447811]  [<ffffffff811399c1>] do_filp_open+0x35/0x7a
[    5.448899]  [<ffffffff813c53b0>] ? _raw_spin_unlock+0x22/0x2d
[    5.449993]  [<ffffffff81143aa5>] ? __alloc_fd+0xee/0xfd
[    5.451061]  [<ffffffff8112c135>] do_sys_open+0x6b/0xfa
[    5.452121]  [<ffffffff8112c1dd>] SyS_open+0x19/0x1b
[    5.453186]  [<ffffffff813cbb22>] system_call_fastpath+0x16/0x1b
[    5.587862] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.587868] radeon 0000:01:00.0: still active bo inside vm
[    5.587898] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.587901] radeon 0000:01:00.0: still active bo inside vm
[    5.587971] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.587974] radeon 0000:01:00.0: still active bo inside vm
[    5.588009] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.588012] radeon 0000:01:00.0: still active bo inside vm
[    5.696557] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.696562] radeon 0000:01:00.0: still active bo inside vm
[    5.696598] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.696601] radeon 0000:01:00.0: still active bo inside vm
[    5.696637] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.696640] radeon 0000:01:00.0: still active bo inside vm
[    5.696663] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.696665] radeon 0000:01:00.0: still active bo inside vm
[    5.802864] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.802869] radeon 0000:01:00.0: still active bo inside vm
[    5.802904] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.802906] radeon 0000:01:00.0: still active bo inside vm
[    5.802973] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.802975] radeon 0000:01:00.0: still active bo inside vm
[    5.803003] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.803006] radeon 0000:01:00.0: still active bo inside vm
[    5.917046] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.917053] radeon 0000:01:00.0: still active bo inside vm
[    5.917109] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.917113] radeon 0000:01:00.0: still active bo inside vm
[    5.917181] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.917185] radeon 0000:01:00.0: still active bo inside vm
[    5.917221] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    5.917225] radeon 0000:01:00.0: still active bo inside vm
[    6.025320] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.025326] radeon 0000:01:00.0: still active bo inside vm
[    6.025372] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.025376] radeon 0000:01:00.0: still active bo inside vm
[    6.025439] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.025442] radeon 0000:01:00.0: still active bo inside vm
[    6.025479] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.025482] radeon 0000:01:00.0: still active bo inside vm
[    6.084335] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.084342] radeon 0000:01:00.0: still active bo inside vm
[    6.084398] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.084404] radeon 0000:01:00.0: still active bo inside vm
[    6.084476] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.084480] radeon 0000:01:00.0: still active bo inside vm
[    6.084520] radeon 0000:01:00.0: bo ffff8800db841000 va 0x00000000 conflict with (bo ffff8800db841000 0x00100000 0x00200000)
[    6.084525] radeon 0000:01:00.0: still active bo inside vm

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-06-24  6:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 13:29 [PATCH 1/3] drm/radeon: stop poisoning the GART TLB Christian König
2014-06-04 13:29 ` [PATCH 2/3] drm/radeon: remove range check from *_gart_set_page Christian König
2014-06-04 13:29 ` [PATCH 3/3] drm/radeon: use the SDMA on for buffer moves on CIK again Christian König
2014-06-04 13:46 ` [PATCH 1/3] drm/radeon: stop poisoning the GART TLB Alex Deucher
2014-06-04 13:50   ` Christian König
2014-06-10 23:30 ` Marek Olšák
2014-06-11  9:29   ` Christian König
2014-06-11 10:56     ` Marek Olšák
2014-06-12 11:23       ` Christian König
2014-06-13 13:19         ` Marek Olšák
2014-06-13 15:45           ` Christian König
2014-06-13 21:31             ` Alex Deucher
2014-06-15 12:48               ` Christian König
2014-06-19  1:48                 ` Michel Dänzer
2014-06-19  9:45                   ` Christian König
2014-06-23  8:15                     ` Michel Dänzer
2014-06-23  9:56                       ` Christian König
2014-06-24  6:49                         ` Michel Dänzer [this message]
2014-06-24 10:14                           ` Christian König
2014-06-25  3:59                             ` Michel Dänzer
2014-06-26 12:25                               ` Dieter Nützel
2014-06-27  2:31                               ` Michel Dänzer
2014-06-27  8:26                                 ` Christian König
2014-06-27  8:59                                   ` Michel Dänzer
2014-06-29 10:34                                     ` Christian König
2014-06-30  6:10                                       ` Michel Dänzer
2014-06-30  7:43                                         ` Christian König
2014-07-01  6:48                                           ` Michel Dänzer
2014-07-01 12:16                                             ` Christian König
2014-07-02  6:57                                               ` Michel Dänzer
2014-07-02 19:31                                                 ` Christian König
2014-07-03  3:48                                                   ` Michel Dänzer
2014-07-03  6:36                                                     ` Christian König
2014-06-19 10:20                   ` Marek Olšák
2014-06-19 10:25                     ` Christian König
2014-06-20  1:10                     ` Michel Dänzer

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=53A91F89.7090504@daenzer.net \
    --to=michel@daenzer.net \
    --cc=alexdeucher@gmail.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    /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.