From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: intel_check_page_flip() - WARN_ON(!in_interrupt()) Date: Wed, 03 Jun 2015 17:44:46 +0100 Message-ID: <556F2EFE.9030805@intel.com> References: <5567A861.8080101@osg.samsung.com> <87vbfbgar9.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <87vbfbgar9.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , Shuah Khan , daniel.vetter@intel.com Cc: intel-gfx@lists.freedesktop.org, "linux-kernel@vger.kernel.org" , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMjkvMDUvMTUgMDc6MjYsIEphbmkgTmlrdWxhIHdyb3RlOgo+IE9uIEZyaSwgMjkgTWF5IDIw MTUsIFNodWFoIEtoYW4gPHNodWFoa2hAb3NnLnNhbXN1bmcuY29tPiB3cm90ZToKPj4gSSBhbSBz ZWVpbmcgdGhlIGZvbGxvd2luZyBpbiB0aGUgZG1lc2cgb24gNC4wLjQgd2l0aCBydCBwYXRjaAo+ Pgo+PiBbICAgIDUuNzIwMzE5XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0K Pj4gWyAgICA1LjcyMDM0N10gV0FSTklORzogQ1BVOiA2IFBJRDogNDY2IGF0Cj4+IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYzo5NzQ4Cj4+IGludGVsX2NoZWNrX3BhZ2VfZmxp cCsweGFhLzB4ZjAgW2k5MTVdKCkKPj4gWyAgICA1LjcyMDM0OV0gV0FSTl9PTighaW5faW50ZXJy dXB0KCkpCj4+IFsgICAgNS43MjAzNTBdIE1vZHVsZXMgbGlua2VkIGluOgo+PiBbICAgIDUuNzIw Mzc2XSAgYmluZm10X21pc2MgcmZjb21tIGJuZXAgYXJjNCBlZWVwY193bWkgaGlkX2dlbmVyaWMK Pj4gYXN1c193bWkgc3BhcnNlX2tleW1hcCBpd2xtdm0gaW50ZWxfcG93ZXJjbGFtcCBjb3JldGVt cCBrdm1faW50ZWwga3ZtCj4+IG1hYzgwMjExIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVs IGdoYXNoX2NsbXVsbmlfaW50ZWwgYWVzbmlfaW50ZWwKPj4gYWVzX3g4Nl82NCBscncgZ2YxMjht dWwgZG1fbXVsdGlwYXRoIGdsdWVfaGVscGVyIHNuZF9oZGFfY29kZWNfaGRtaQo+PiBzY3NpX2Ro IGFibGtfaGVscGVyIGNyeXB0ZCBtaWNyb2NvZGUgYnR1c2IgaXdsd2lmaSBibHVldG9vdGggc2Vy aW9fcmF3Cj4+IGNmZzgwMjExIGk5MTUgc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29k ZWNfZ2VuZXJpYyBscGNfaWNoCj4+IHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb250cm9sbGVyIHNu ZF9oZGFfY29kZWMgc25kX2h3ZGVwIHNuZF9wY20KPj4gc25kX3NlcV9taWRpIHNuZF9zZXFfbWlk aV9ldmVudCBzbmRfcmF3bWlkaSBkcm1fa21zX2hlbHBlciBzbmRfc2VxIGRybQo+PiB2aWRlbyBz bmRfc2VxX2RldmljZSBtYWNfaGlkIHNuZF90aW1lciBzbmQgbWVpX21lIHdtaSBtZWkgc2hwY2hw Cj4+IHNvdW5kY29yZSBpMmNfYWxnb19iaXQgdXNiaGlkIGhpZCBwYXJwb3J0X3BjIHBwZGV2IGxw IHBhcnBvcnQgYXV0b2ZzNAo+PiBidHJmcyB4b3IgcmFpZDZfcHEgcHNtb3VzZSBkbV9taXJyb3Ig cjgxNjkgYWhjaSBkbV9yZWdpb25faGFzaCBsaWJhaGNpCj4+IG1paSBkbV9sb2cKPj4gWyAgICA1 LjcyMDM3OV0gQ1BVOiA2IFBJRDogNDY2IENvbW06IGlycS8zMi1pOTE1IE5vdCB0YWludGVkIDQu MC40LXJ0MSsgIzgKPj4gWyAgICA1LjcyMDM4MF0gSGFyZHdhcmUgbmFtZTogU3lzdGVtNzYsIElu Yy4gV2lsZCBEb2cKPj4gUGVyZm9ybWFuY2UvSDg3LVBMVVMsIEJJT1MgMDcwNSAxMi8wNS8yMDEz Cj4+IFsgICAgNS43MjAzODJdICAwMDAwMDAwMDAwMDAwMDA5IGZmZmY4ODAzZWEzOWJjOTggZmZm ZmZmZmY4MTdjMDY5NAo+PiAwMDAwMDAwMDAwMDAwMDAyCj4+IFsgICAgNS43MjAzODNdICBmZmZm ODgwM2VhMzliY2U4IGZmZmY4ODAzZWEzOWJjZDggZmZmZmZmZmY4MTA3M2Q4YQo+PiAwMDAwMDAw MDAwMDAwMDAxCj4+IFsgICAgNS43MjAzODRdICBmZmZmODgwM2ViMTg0MDAwIGZmZmY4ODAwZDc4 MDQ4MDAgMDAwMDAwMDAwMDAwMDAwMAo+PiAwMDAwMDAwMDAwMDAwMDAwCj4+IFsgICAgNS43MjAz ODVdIENhbGwgVHJhY2U6Cj4+IFsgICAgNS43MjAzOTBdICBbPGZmZmZmZmZmODE3YzA2OTQ+XSBk dW1wX3N0YWNrKzB4NGYvMHg5MAo+PiBbICAgIDUuNzIwMzkzXSAgWzxmZmZmZmZmZjgxMDczZDhh Pl0gd2Fybl9zbG93cGF0aF9jb21tb24rMHg4YS8weGUwCj4+IFsgICAgNS43MjAzOTVdICBbPGZm ZmZmZmZmODEwNzNlMjY+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDQ2LzB4NTAKPj4gWyAgICA1Ljcy MDQxMF0gIFs8ZmZmZmZmZmZhMDQwYmRiYT5dIGludGVsX2NoZWNrX3BhZ2VfZmxpcCsweGFhLzB4 ZjAgW2k5MTVdCj4+IFsgICAgNS43MjA0MjBdICBbPGZmZmZmZmZmYTAzZDc4ODg+XSBpcm9ubGFr ZV9pcnFfaGFuZGxlcisweDJlOC8weDEwMDAKPj4gW2k5MTVdCj4+IFsgICAgNS43MjA0MjNdICBb PGZmZmZmZmZmODEzZTc3ODc+XSA/IGRlYnVnX3NtcF9wcm9jZXNzb3JfaWQrMHgxNy8weDIwCj4+ IFsgICAgNS43MjA0MjRdICBbPGZmZmZmZmZmODEwNzQ1MTI+XSA/IHBpbl9jdXJyZW50X2NwdSsw eDkyLzB4MWQwCj4+IFsgICAgNS43MjA0MjZdICBbPGZmZmZmZmZmODEwZDA2OTA+XSA/IGlycV90 aHJlYWRfZm4rMHg1MC8weDUwCj4+IFsgICAgNS43MjA0MjhdICBbPGZmZmZmZmZmODEwZDA2Yjc+ XSBpcnFfZm9yY2VkX3RocmVhZF9mbisweDI3LzB4ODAKPj4gWyAgICA1LjcyMDQyOV0gIFs8ZmZm ZmZmZmY4MTBkMGM0Zj5dIGlycV90aHJlYWQrMHgxMGYvMHgxNjAKPj4gWyAgICA1LjcyMDQzMF0g IFs8ZmZmZmZmZmY4MTBkMDc0MD5dID8gd2FrZV90aHJlYWRzX3dhaXRxKzB4MzAvMHgzMAo+PiBb ICAgIDUuNzIwNDMyXSAgWzxmZmZmZmZmZjgxMGQwYjQwPl0gPyBpcnFfdGhyZWFkX2NoZWNrX2Fm ZmluaXR5KzB4OTAvMHg5MAo+PiBbICAgIDUuNzIwNDMzXSAgWzxmZmZmZmZmZjgxMDkzZDdiPl0g a3RocmVhZCsweGJiLzB4ZTAKPj4gWyAgICA1LjcyMDQzNF0gIFs8ZmZmZmZmZmY4MTA5M2NjMD5d ID8ga3RocmVhZF93b3JrZXJfZm4rMHgxYTAvMHgxYTAKPj4gWyAgICA1LjcyMDQzNl0gIFs8ZmZm ZmZmZmY4MTdjNmJkOD5dIHJldF9mcm9tX2ZvcmsrMHg1OC8weDkwCj4+IFsgICAgNS43MjA0Mzdd ICBbPGZmZmZmZmZmODEwOTNjYzA+XSA/IGt0aHJlYWRfd29ya2VyX2ZuKzB4MWEwLzB4MWEwCj4+ IFsgICAgNS43MjA0MzddIC0tLVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDIgXS0tLQo+Pgo+ PiBUaGVyZSBzZWVtIHRvIGJlIGZldyBwYXN0IGJ1ZyByZXBvcnRzIG9uIHRoaXMgaXNzdWUuIEhh cyB0aGlzIGJlZW4KPj4gZml4ZWQ/IFNob3VsZCBJIGJlIGNvbmNlcm5lZCBhYm91dCB0aGlzPwo+ IAo+IE9uZSBvZiB0aGUgb2xkIGJ1Z3MgWzFdIHdhcyBhYm91dCB1c2luZyBpbl9pcnEoKSB3aGlj aCBkaWRuJ3Qgd29yayBmb3IKPiB0aHJlYWRlZCBpcnFzLCBoZW5jZSB0aGUgc3dpdGNoIHRvIGlu X2ludGVycnVwdCgpLiBUaGUgYmFja3RyYWNlIHNlZW1zCj4gdG8gaW5kaWNhdGUgaW50ZWxfY2hl Y2tfcGFnZV9mbGlwKCkgaXMgYmVpbmcgY2FsbGVkIGZyb20gaXJxIGNvbnRleHQ7IEkKPiBkbyBu b3Qga25vdyBpZiB0aGUgcnQgcGF0Y2hzZXQgaGFzIGFuIGltcGFjdCBvbiB0aGlzLgo+IAo+IEJS LAo+IEphbmkuCj4gCj4gWzFdIGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcu Y2dpP2lkPTg5MzIxCj4gCj4+IHRoYW5rcywKPj4gLS0gU2h1YWgKPj4gU2h1YWggS2hhbgo+PiBT ci4gTGludXggS2VybmVsIERldmVsb3Blcgo+PiBPcGVuIFNvdXJjZSBJbm5vdmF0aW9uIEdyb3Vw Cj4+IFNhbXN1bmcgUmVzZWFyY2ggQW1lcmljYSAoU2lsaWNvbiBWYWxsZXkpCj4+IHNodWFoa2hA b3NnLnNhbXN1bmcuY29tIHwgKDk3MCkgMjE3LTg5NzgKClRoaXMgaXMgd2hhdCB0aGUgUlQgcHJv amVjdCBwYWdlIHNheXM6CgpUaGUgUlQtUHJlZW1wdCBwYXRjaCBjb252ZXJ0cyBMaW51eCBpbnRv IGEgZnVsbHkgcHJlZW1wdGlibGUga2VybmVsLiBUaGUKbWFnaWMgaXMgZG9uZSB3aXRoOgoxLiBN YWtpbmcgaW4ta2VybmVsIGxvY2tpbmctcHJpbWl0aXZlcyAodXNpbmcgc3BpbmxvY2tzKSBwcmVl bXB0aWJsZQogICB0aG91Z2ggcmVpbXBsZW1lbnRhdGlvbiB3aXRoIHJ0bXV0ZXhlczoKMi4gQ3Jp dGljYWwgc2VjdGlvbnMgcHJvdGVjdGVkIGJ5IGkuZS4gc3BpbmxvY2tfdCBhbmQgcndsb2NrX3Qg YXJlIG5vdwogICBwcmVlbXB0aWJsZS4gVGhlIGNyZWF0aW9uIG9mIG5vbi1wcmVlbXB0aWJsZSBz ZWN0aW9ucyAoaW4ga2VybmVsKSBpcwogICBzdGlsbCBwb3NzaWJsZSB3aXRoIHJhd19zcGlubG9j a190IChzYW1lIEFQSXMgbGlrZSBzcGlubG9ja190KQozLiBJbXBsZW1lbnRpbmcgcHJpb3JpdHkg aW5oZXJpdGFuY2UgZm9yIGluLWtlcm5lbCBtdXRleGVzLCBzcGlubG9ja3MKICAgYW5kIHJ3X3Nl bWFwaG9yZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByaW9yaXR5IGludmVyc2lvbiBhbmQK ICAgcHJpb3JpdHkgaW5oZXJpdGFuY2UgcGxlYXNlIGNvbnN1bHQgIkludHJvZHVjdGlvbiB0byBQ cmlvcml0eQogICBJbnZlcnNpb24iCjQuIENvbnZlcnRpbmcgaW50ZXJydXB0IGhhbmRsZXJzIGlu dG8gcHJlZW1wdGlibGUga2VybmVsIHRocmVhZHM6IFRoZQogICBSVC1QcmVlbXB0IHBhdGNoIHRy ZWF0cyBzb2Z0IGludGVycnVwdCBoYW5kbGVycyBpbiBrZXJuZWwgdGhyZWFkCiAgIGNvbnRleHQs IHdoaWNoIGlzIHJlcHJlc2VudGVkIGJ5IGEgdGFza19zdHJ1Y3QgbGlrZSBhIGNvbW1vbgogICB1 c2Vyc3BhY2UgcHJvY2Vzcy4gSG93ZXZlciBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHJlZ2lzdGVy IGFuIElSUSBpbgogICBrZXJuZWwgY29udGV4dC4KNS4gQ29udmVydGluZyB0aGUgb2xkIExpbnV4 IHRpbWVyIEFQSSBpbnRvIHNlcGFyYXRlIGluZnJhc3RydWN0dXJlcyBmb3IKICAgaGlnaCByZXNv bHV0aW9uIGtlcm5lbCB0aW1lcnMgcGx1cyBvbmUgZm9yIHRpbWVvdXRzLCBsZWFkaW5nIHRvCiAg IHVzZXJzcGFjZSBQT1NJWCB0aW1lcnMgd2l0aCBoaWdoIHJlc29sdXRpb24uCgpTbyBteSBndWVz cyBpcyB0aGF0IGl0ZW0gKDQpIG1hZGUgdGhlIGluX2ludGVycnVwdCgpIGFuZC9vciBpbl9pcnEo KQptYWNyb3MgdW5yZWxpYWJsZTsgd2l0aCBpbnRlcnJ1cHRzIGhhbmRsZWQgYXMgdGhyZWFkcywg dGhlcmUgaXNuJ3QKcmVhbGx5IGFueSBub3Rpb24gb2YgImJlaW5nIGluIGludGVycnVwdCBjb250 ZXh0Ii4KCi5EYXZlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758612AbbFCQpI (ORCPT ); Wed, 3 Jun 2015 12:45:08 -0400 Received: from mga09.intel.com ([134.134.136.24]:63828 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758553AbbFCQox (ORCPT ); Wed, 3 Jun 2015 12:44:53 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,547,1427785200"; d="scan'208";a="704733144" Message-ID: <556F2EFE.9030805@intel.com> Date: Wed, 03 Jun 2015 17:44:46 +0100 From: Dave Gordon Organization: Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Jani Nikula , Shuah Khan , daniel.vetter@intel.com CC: intel-gfx@lists.freedesktop.org, "linux-kernel@vger.kernel.org" , dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] intel_check_page_flip() - WARN_ON(!in_interrupt()) References: <5567A861.8080101@osg.samsung.com> <87vbfbgar9.fsf@intel.com> In-Reply-To: <87vbfbgar9.fsf@intel.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29/05/15 07:26, Jani Nikula wrote: > On Fri, 29 May 2015, Shuah Khan wrote: >> I am seeing the following in the dmesg on 4.0.4 with rt patch >> >> [ 5.720319] ------------[ cut here ]------------ >> [ 5.720347] WARNING: CPU: 6 PID: 466 at >> drivers/gpu/drm/i915/intel_display.c:9748 >> intel_check_page_flip+0xaa/0xf0 [i915]() >> [ 5.720349] WARN_ON(!in_interrupt()) >> [ 5.720350] Modules linked in: >> [ 5.720376] binfmt_misc rfcomm bnep arc4 eeepc_wmi hid_generic >> asus_wmi sparse_keymap iwlmvm intel_powerclamp coretemp kvm_intel kvm >> mac80211 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel >> aes_x86_64 lrw gf128mul dm_multipath glue_helper snd_hda_codec_hdmi >> scsi_dh ablk_helper cryptd microcode btusb iwlwifi bluetooth serio_raw >> cfg80211 i915 snd_hda_codec_realtek snd_hda_codec_generic lpc_ich >> snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm >> snd_seq_midi snd_seq_midi_event snd_rawmidi drm_kms_helper snd_seq drm >> video snd_seq_device mac_hid snd_timer snd mei_me wmi mei shpchp >> soundcore i2c_algo_bit usbhid hid parport_pc ppdev lp parport autofs4 >> btrfs xor raid6_pq psmouse dm_mirror r8169 ahci dm_region_hash libahci >> mii dm_log >> [ 5.720379] CPU: 6 PID: 466 Comm: irq/32-i915 Not tainted 4.0.4-rt1+ #8 >> [ 5.720380] Hardware name: System76, Inc. Wild Dog >> Performance/H87-PLUS, BIOS 0705 12/05/2013 >> [ 5.720382] 0000000000000009 ffff8803ea39bc98 ffffffff817c0694 >> 0000000000000002 >> [ 5.720383] ffff8803ea39bce8 ffff8803ea39bcd8 ffffffff81073d8a >> 0000000000000001 >> [ 5.720384] ffff8803eb184000 ffff8800d7804800 0000000000000000 >> 0000000000000000 >> [ 5.720385] Call Trace: >> [ 5.720390] [] dump_stack+0x4f/0x90 >> [ 5.720393] [] warn_slowpath_common+0x8a/0xe0 >> [ 5.720395] [] warn_slowpath_fmt+0x46/0x50 >> [ 5.720410] [] intel_check_page_flip+0xaa/0xf0 [i915] >> [ 5.720420] [] ironlake_irq_handler+0x2e8/0x1000 >> [i915] >> [ 5.720423] [] ? debug_smp_processor_id+0x17/0x20 >> [ 5.720424] [] ? pin_current_cpu+0x92/0x1d0 >> [ 5.720426] [] ? irq_thread_fn+0x50/0x50 >> [ 5.720428] [] irq_forced_thread_fn+0x27/0x80 >> [ 5.720429] [] irq_thread+0x10f/0x160 >> [ 5.720430] [] ? wake_threads_waitq+0x30/0x30 >> [ 5.720432] [] ? irq_thread_check_affinity+0x90/0x90 >> [ 5.720433] [] kthread+0xbb/0xe0 >> [ 5.720434] [] ? kthread_worker_fn+0x1a0/0x1a0 >> [ 5.720436] [] ret_from_fork+0x58/0x90 >> [ 5.720437] [] ? kthread_worker_fn+0x1a0/0x1a0 >> [ 5.720437] ---[ end trace 0000000000000002 ]--- >> >> There seem to be few past bug reports on this issue. Has this been >> fixed? Should I be concerned about this? > > One of the old bugs [1] was about using in_irq() which didn't work for > threaded irqs, hence the switch to in_interrupt(). The backtrace seems > to indicate intel_check_page_flip() is being called from irq context; I > do not know if the rt patchset has an impact on this. > > BR, > Jani. > > [1] https://bugs.freedesktop.org/show_bug.cgi?id=89321 > >> thanks, >> -- Shuah >> Shuah Khan >> Sr. Linux Kernel Developer >> Open Source Innovation Group >> Samsung Research America (Silicon Valley) >> shuahkh@osg.samsung.com | (970) 217-8978 This is what the RT project page says: The RT-Preempt patch converts Linux into a fully preemptible kernel. The magic is done with: 1. Making in-kernel locking-primitives (using spinlocks) preemptible though reimplementation with rtmutexes: 2. Critical sections protected by i.e. spinlock_t and rwlock_t are now preemptible. The creation of non-preemptible sections (in kernel) is still possible with raw_spinlock_t (same APIs like spinlock_t) 3. Implementing priority inheritance for in-kernel mutexes, spinlocks and rw_semaphores. For more information on priority inversion and priority inheritance please consult "Introduction to Priority Inversion" 4. Converting interrupt handlers into preemptible kernel threads: The RT-Preempt patch treats soft interrupt handlers in kernel thread context, which is represented by a task_struct like a common userspace process. However it is also possible to register an IRQ in kernel context. 5. Converting the old Linux timer API into separate infrastructures for high resolution kernel timers plus one for timeouts, leading to userspace POSIX timers with high resolution. So my guess is that item (4) made the in_interrupt() and/or in_irq() macros unreliable; with interrupts handled as threads, there isn't really any notion of "being in interrupt context". .Dave.