bugzilla-daemon | 23 Jul 23:18 2014

[Bug 81690] New: nouveau GPU locks up under memory pressure

Priority Bug ID Assignee Summary Severity Classification OS Reporter URL Hardware Status Version Component Product
medium
81690
dri-devel <at> lists.freedesktop.org
nouveau GPU locks up under memory pressure
normal
Unclassified
Linux (All)
hramrach <at> gmail.com
http://download.wakfu.asia/full/unix/
x86-64 (AMD64)
NEW
unspecified
DRM/other
DRI

When there is memory pressure GPU tends to hang. This is probably related to system memory pressure (not vram) although I have no idea about vram utilisation. Usually crash happens when I start an application that uses the GPU and the system starts to swap and/or OOM killer kills something and/or applications crash due to bad handling of OOM condition. 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GeForce GT 620 [10de:0f01] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device [1043:83ff] Flags: bus master, fast devsel, latency 0, IRQ 52 Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Memory at f0000000 (64-bit, prefetchable) [size=128M] Memory at f8000000 (64-bit, prefetchable) [size=32M] I/O ports at dc80 [size=128] Expansion ROM at fde00000 [disabled] [size=512K] Capabilities: [60] Power Management version 3 Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+ Capabilities: [78] Express Endpoint, MSI 00 Capabilities: [b4] Vendor Specific Information: Len=14 <?> Capabilities: [100] Virtual Channel Capabilities: [128] Power Budgeting <?> Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?> Kernel driver in use: nouveau Linux 3.15-trunk-amd64 #1 SMP Debian 3.15.5-1~exp1 (2014-07-10) x86_64 GNU/Linux ii libgl1-mesa-dri:am 10.2.3-1 amd64 [ 2574.171692] nouveau E[ PFIFO][0000:01:00.0] read fault at 0x0000011000 [INVALID_STORAGE_TYPE] from PFIFO/PFIFO on channel 0x007edbc000 [unknown] [ 2664.669780] nouveau E[ DRM] GPU lockup - switching to software fbcon [ 2679.688012] nouveau E[Xorg[1971]] failed to idle channel 0xcccc0001 [Xorg[1971]] [ 151.697805] nouveau E[ PFIFO][0000:01:00.0] read fault at 0x0000011000 [INVALID_STORAGE_TYPE] from PFIFO/PFIFO on channel 0x007ed88000 [unknown] [ 168.639601] nouveau E[ DRM] GPU lockup - switching to software fbcon [ 183.760010] nouveau E[Xorg[2027]] failed to idle channel 0xcccc0001 [Xorg[2027]] [ 134.917421] nouveau E[ PFIFO][0000:01:00.0] read fault at 0x0000011000 [INVALID_STORAGE_TYPE] from PFIFO/PFIFO on channel 0x007ed88000 [unknown] [ 165.296145] nouveau E[ DRM] GPU lockup - switching to software fbcon [ 7.563122] nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0c1080a1 [ 7.569331] nouveau [ DEVICE][0000:01:00.0] Chipset: GF108 (NVC1) [ 7.575693] nouveau [ DEVICE][0000:01:00.0] Family : NVC0 [ 7.586561] usbcore: registered new interface driver snd-usb-audio [ 7.644889] nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image... [ 7.790243] nouveau [ VBIOS][0000:01:00.0] ... appears to be valid [ 7.790245] nouveau [ VBIOS][0000:01:00.0] using image from PRAMIN [ 7.790338] nouveau [ VBIOS][0000:01:00.0] BIT signature found [ 7.790340] nouveau [ VBIOS][0000:01:00.0] version 70.08.ae.00.02 [ 7.790366] Bluetooth: HCI socket layer initialized [ 7.790367] Bluetooth: L2CAP socket layer initialized [ 7.790376] Bluetooth: SCO socket layer initialized [ 7.797368] nouveau 0000:01:00.0: irq 52 for MSI/MSI-X [ 7.797377] nouveau [ PMC][0000:01:00.0] MSI interrupts enabled [ 7.797415] nouveau W[ PFB][0000:01:00.0][0x00000000][ffff88022bbb7800] reclocking of this ram type unsupported [ 7.797416] nouveau [ PFB][0000:01:00.0] RAM type: DDR3 [ 7.797417] nouveau [ PFB][0000:01:00.0] RAM size: 2048 MiB [ 7.797418] nouveau [ PFB][0000:01:00.0] ZCOMP: 0 tags [ 7.801509] nouveau [ VOLT][0000:01:00.0] GPU voltage: 900000uv [ 9.300033] nouveau [ PTHERM][0000:01:00.0] FAN control: none / external [ 9.306998] nouveau [ PTHERM][0000:01:00.0] fan management: automatic [ 9.313701] nouveau [ PTHERM][0000:01:00.0] internal sensor: yes [ 9.320011] nouveau [ CLK][0000:01:00.0] 03: core 50 MHz memory 324 MHz [ 9.320113] EXT4-fs (sdd1): mounting ext3 file system using the ext4 subsystem [ 9.334538] nouveau [ CLK][0000:01:00.0] 07: core 405 MHz memory 324 MHz [ 9.341863] nouveau [ CLK][0000:01:00.0] 0f: core 700 MHz memory 700 MHz [ 9.349339] nouveau [ CLK][0000:01:00.0] --: core 405 MHz memory 324 MHz [ 9.359052] [TTM] Zone kernel: Available graphics memory: 4032366 kiB [ 9.365668] [TTM] Zone dma32: Available graphics memory: 2097152 kiB [ 9.372279] [TTM] Initializing pool allocator [ 9.376741] [TTM] Initializing DMA pool allocator [ 9.381547] nouveau [ DRM] VRAM: 2048 MiB [ 9.386087] nouveau [ DRM] GART: 1048576 MiB [ 9.390892] nouveau [ DRM] TMDS table version 2.0 [ 9.396126] nouveau [ DRM] DCB version 4.0 [ 9.400746] nouveau [ DRM] DCB outp 00: 01000302 00020030 [ 9.406675] nouveau [ DRM] DCB outp 01: 02000300 00000000 [ 9.412608] nouveau [ DRM] DCB outp 02: 08011392 00020020 [ 9.418523] nouveau [ DRM] DCB outp 03: 04022310 00000000 [ 9.421527] EXT4-fs (sdd1): mounted filesystem with ordered data mode. Opts: errors=remount-ro [ 9.433144] nouveau [ DRM] DCB conn 00: 00001030 [ 9.439774] nouveau [ DRM] DCB conn 01: 00002161 [ 9.446363] nouveau [ DRM] DCB conn 02: 00000200 [ 9.452457] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 9.459164] [drm] Driver supports precise vblank timestamp query. [ 9.470482] nouveau [ DRM] MM: using COPY0 for buffer copies [ 9.500028] usb 4-2: new full-speed USB device number 4 using uhci_hcd [ 9.584981] nouveau [ DRM] allocated 1600x1600 fb: 0x60000, bo ffff88022e07c800 [ 9.592947] fbcon: nouveaufb (fb0) is primary device [ 9.642993] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: (null) [ 9.684077] Console: switching to colour frame buffer device 150x75 [ 9.705241] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device [ 9.705246] nouveau 0000:01:00.0: registered panic notifier [ 9.705257] [drm] Initialized nouveau 1.1.1 20120801 for 0000:01:00.0 on minor 0 [177491.295050] nouveau E[Wakfu[2020]] fail ttm_validate [177491.300109] nouveau E[Wakfu[2020]] validate gart_list [177491.305449] nouveau E[Wakfu[2020]] validate: -12 [177717.658727] usb 8-4: USB disconnect, device number 14 [177803.434648] nouveau E[ PFIFO][0000:01:00.0] write fault at 0x0000218000 [PAGE_NOT_PRESENT] from PGRAPH/DISPATCH on channel 0x007f89c000 [Wakfu[2020]] [177803.438624] nouveau E[ PFIFO][0000:01:00.0] PGRAPH engine fault on channel 5, recovering... [177983.108013] nouveau E[Xorg[1899]] failed to idle channel 0xcccc0000 [Xorg[1899]] [177998.112017] nouveau E[Xorg[1899]] failed to idle channel 0xcccc0000 [Xorg[1899]] [177998.119751] nouveau E[ PFIFO][0000:01:00.0] read fault at 0x000001b000 [PAGE_NOT_PRESENT] from PFIFO/BAR_READ on channel 0x007fb5a000 [unknown] [178002.857403] nouveau E[ DRM] GPU lockup - switching to software fbcon [178015.816010] nouveau E[Wakfu[2016]] failed to idle channel 0xcccc0000 [Wakfu[2016]] an easy way to trigger the issue is to download the above game client, unpack, run the launcher script (wakfu/wakfu), wait for updates to finish, and press the PLAY button repeatedly until memory runs out. The client takes about 1.2GB
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 23 Jul 22:26 2014

[Bug 81689] New: Black screen in info-beamer

Priority Bug ID Assignee Summary Severity Classification OS Reporter Hardware Status Version Component Product
medium
81689
dri-devel <at> lists.freedesktop.org
Black screen in info-beamer
normal
Unclassified
Linux (All)
sa <at> whiz.se
x86 (IA32)
NEW
10.2
Drivers/Gallium/r600
Mesa

The multimedia presenter info-beamer ( http://info-beamer.org/ ) just renders a black screen with r600g. It's working fine with software rendering and on Intel hardware. Not a regression, or at least present in Mesa 9.2. I've made an apitrace of one of the beamer demos: https://my.owndrive.com/public.php?service=files&t=cef11b335be2741058363783176b14cd The trace renders correctly but gives a lot of errors, so this might be a bug in info-beamer: 0 87813 glGetUniformLocation(program = 0, name = "Color") = -1 87813: warning: glGetError(glGetUniformLocation) = GL_INVALID_VALUE 87872: glDebugOutputCallback: High severity API error 1, GL_INVALID_OPERATION in glReadBuffer(buffer=0x405) 87872: glDebugOutputCallback: High severity API error 1, GL_INVALID_OPERATION in glDrawBuffer(buffer=0x405) 0 87872 glPopAttrib() 87872: warning: glGetError(glPopAttrib) = GL_INVALID_OPERATION 87882: glDebugOutputCallback: High severity API error 1, GL_INVALID_VALUE in glGetUniformLocation System environment: -- system architecture: 32-bit -- Linux distribution: Debian unstable -- GPU: REDWOOD -- Model: XFX Radeon HD 5670 1GB -- Display connector: DVI -- xf86-video-ati: 7.4.0 -- xserver: 1.16.0 -- mesa: 10.2.4 -- drm: 2.4.54 -- kernel: 3.13
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Rob Clark | 23 Jul 21:38 2014
Picon

[PATCH 0/7] prepare for atomic.. the great propertyification

This is mostly just a rebase+resend.  Was going to send it a bit earlier
but had a few things to fix up as a result of the rebase.

At this point, I think next steps are roughly:
1) introduce plane->mutex
2) decide what we want to do about events
3) add actual ioctl

I think we could shoot for merging this series next, and then adding
plane->mutex in 3.18?

Before we add the ioctl, I think we want to sort out events for updates
to non-primary layers, and what the interface to drivers should look like.
Ie. just add event to ->update_plane() or should we completely ditch
->page_flip() and ->update_plane()?

Technically, I think we could get away without a new API and just let
drivers grab all the events in their ->atomic_commit(), but I suspect
core could provide something more useful to drivers.  I guess it would
be useful to have a few more drivers converted over to see what makes
sense.

Rob Clark (5):
  drm: add atomic fxns
  drm: split propvals out and blob property support
  drm: convert plane to properties/state
  drm: convert crtc to properties/state
  drm/msm: add atomic support

Sean Paul (1):
  drm: Fix up the atomic legacy paths so they work

Ville Syrjälä (1):
  drm: Refactor object property check code

 drivers/gpu/drm/Makefile                    |    2 +-
 drivers/gpu/drm/armada/armada_crtc.c        |   14 +-
 drivers/gpu/drm/armada/armada_output.c      |    3 +-
 drivers/gpu/drm/armada/armada_overlay.c     |   14 +-
 drivers/gpu/drm/ast/ast_drv.c               |    6 +
 drivers/gpu/drm/ast/ast_drv.h               |    1 +
 drivers/gpu/drm/ast/ast_mode.c              |    1 +
 drivers/gpu/drm/cirrus/cirrus_drv.c         |    6 +
 drivers/gpu/drm/cirrus/cirrus_drv.h         |    1 +
 drivers/gpu/drm/cirrus/cirrus_mode.c        |    1 +
 drivers/gpu/drm/drm_atomic.c                |  733 +++++++++++++++
 drivers/gpu/drm/drm_crtc.c                  | 1351 ++++++++++++++++++---------
 drivers/gpu/drm/drm_fb_helper.c             |   55 +-
 drivers/gpu/drm/drm_irq.c                   |    8 +-
 drivers/gpu/drm/drm_modeset_lock.c          |   28 +
 drivers/gpu/drm/drm_plane_helper.c          |    2 +
 drivers/gpu/drm/exynos/exynos_drm_crtc.c    |   11 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.c     |    7 +
 drivers/gpu/drm/exynos/exynos_drm_plane.c   |   11 +-
 drivers/gpu/drm/gma500/cdv_intel_crt.c      |    4 +-
 drivers/gpu/drm/gma500/cdv_intel_display.c  |    1 +
 drivers/gpu/drm/gma500/cdv_intel_dp.c       |    7 +-
 drivers/gpu/drm/gma500/cdv_intel_hdmi.c     |    7 +-
 drivers/gpu/drm/gma500/cdv_intel_lvds.c     |   10 +-
 drivers/gpu/drm/gma500/mdfld_dsi_output.c   |   12 +-
 drivers/gpu/drm/gma500/psb_drv.c            |    7 +
 drivers/gpu/drm/gma500/psb_drv.h            |    1 +
 drivers/gpu/drm/gma500/psb_intel_display.c  |    1 +
 drivers/gpu/drm/gma500/psb_intel_drv.h      |    4 +-
 drivers/gpu/drm/gma500/psb_intel_lvds.c     |   10 +-
 drivers/gpu/drm/gma500/psb_intel_sdvo.c     |   23 +-
 drivers/gpu/drm/i2c/ch7006_drv.c            |    4 +-
 drivers/gpu/drm/i915/i915_drv.c             |    8 +
 drivers/gpu/drm/i915/intel_crt.c            |    4 +-
 drivers/gpu/drm/i915/intel_display.c        |    6 +-
 drivers/gpu/drm/i915/intel_dp.c             |    7 +-
 drivers/gpu/drm/i915/intel_drv.h            |    1 +
 drivers/gpu/drm/i915/intel_hdmi.c           |    7 +-
 drivers/gpu/drm/i915/intel_lvds.c           |    4 +-
 drivers/gpu/drm/i915/intel_sdvo.c           |   23 +-
 drivers/gpu/drm/i915/intel_sprite.c         |    1 +
 drivers/gpu/drm/i915/intel_tv.c             |   12 +-
 drivers/gpu/drm/mgag200/mgag200_drv.c       |    7 +
 drivers/gpu/drm/mgag200/mgag200_drv.h       |    1 +
 drivers/gpu/drm/mgag200/mgag200_mode.c      |    1 +
 drivers/gpu/drm/msm/Makefile                |    1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c    |   66 +-
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c     |    6 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h     |    1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c   |   14 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c    |   65 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c     |    6 +
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h     |    2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c   |   14 +-
 drivers/gpu/drm/msm/msm_atomic.c            |  141 +++
 drivers/gpu/drm/msm/msm_drv.c               |   26 +
 drivers/gpu/drm/msm/msm_drv.h               |    8 +
 drivers/gpu/drm/msm/msm_gem.c               |   24 +-
 drivers/gpu/drm/msm/msm_gem.h               |   13 +
 drivers/gpu/drm/msm/msm_kms.h               |    1 +
 drivers/gpu/drm/nouveau/dispnv04/crtc.c     |    1 +
 drivers/gpu/drm/nouveau/dispnv04/overlay.c  |   13 +-
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c   |    3 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c |    7 +-
 drivers/gpu/drm/nouveau/nouveau_drm.c       |    7 +
 drivers/gpu/drm/nouveau/nouveau_drm.h       |    1 +
 drivers/gpu/drm/nouveau/nv50_display.c      |    1 +
 drivers/gpu/drm/omapdrm/omap_crtc.c         |   16 +-
 drivers/gpu/drm/omapdrm/omap_drv.c          |   12 +-
 drivers/gpu/drm/omapdrm/omap_drv.h          |    4 +-
 drivers/gpu/drm/omapdrm/omap_plane.c        |   10 +-
 drivers/gpu/drm/qxl/qxl_display.c           |    6 +-
 drivers/gpu/drm/qxl/qxl_drv.c               |    9 +
 drivers/gpu/drm/radeon/radeon_connectors.c  |    9 +-
 drivers/gpu/drm/radeon/radeon_display.c     |    2 +
 drivers/gpu/drm/radeon/radeon_drv.c         |    9 +
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c      |    2 +
 drivers/gpu/drm/rcar-du/rcar_du_drv.c       |    7 +
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c   |    3 +-
 drivers/gpu/drm/rcar-du/rcar_du_plane.c     |   12 +-
 drivers/gpu/drm/rcar-du/rcar_du_vgacon.c    |    3 +-
 drivers/gpu/drm/shmobile/shmob_drm_crtc.c   |    6 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c    |    7 +
 drivers/gpu/drm/shmobile/shmob_drm_plane.c  |    2 +
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c        |    1 +
 drivers/gpu/drm/tilcdc/tilcdc_drv.c         |    6 +
 drivers/gpu/drm/tilcdc/tilcdc_drv.h         |    1 +
 drivers/gpu/drm/tilcdc/tilcdc_slave.c       |    3 +-
 drivers/gpu/drm/udl/udl_connector.c         |    6 +-
 drivers/gpu/drm/udl/udl_drv.c               |    8 +
 drivers/gpu/drm/udl/udl_modeset.c           |    2 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |    7 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |    1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c         |    4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h         |    4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c         |    1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c        |    1 +
 include/drm/drmP.h                          |   80 ++
 include/drm/drm_atomic.h                    |  170 ++++
 include/drm/drm_crtc.h                      |  238 ++++-
 include/drm/drm_modeset_lock.h              |   47 +
 include/uapi/drm/drm_mode.h                 |    3 +
 102 files changed, 2901 insertions(+), 650 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_atomic.c
 create mode 100644 drivers/gpu/drm/msm/msm_atomic.c
 create mode 100644 include/drm/drm_atomic.h

--

-- 
1.9.3

_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 23 Jul 20:41 2014

[Bug 81683] New: [r600g] graphic glitches in Skyrim - failed to build shader

Priority Bug ID Assignee Summary Severity Classification OS Reporter Hardware Status Version Component Product
medium
81683
dri-devel <at> lists.freedesktop.org
[r600g] graphic glitches in Skyrim - failed to build shader
normal
Unclassified
Linux (All)
640bugs <at> gmail.com
x86-64 (AMD64)
NEW
10.2
Drivers/Gallium/r600
Mesa

Created attachment 103360 [details] Screenshot of graphic problems in Skyrim When playing Skyrim with Mesa 10.2.4, I get graphic glitches at the place of the thieves guild (see screenshot, the floor isn't visible). I am playing with an AMD Radeon 685, Linux 3.15.5-2-ARCH. I noticed these messages in the console. EE r600_shader.c:2188 r600_shader_from_tgsi - GPR limit exceeded - shader requires 127 registers EE r600_shader.c:157 r600_pipe_shader_create - translation from TGSI failed ! EE r600_state_common.c:750 r600_shader_select - Failed to build shader variant (type=1) -12 Is this bug known? Any ideas or suggestion, how i can help to solve this issue?
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 23 Jul 19:23 2014

[Bug 81680] New: [r600g] Firefox crashes with hardware acceleration turned on

Priority Bug ID Assignee Summary Severity Classification OS Reporter Hardware Status Version Component Product
medium
81680
dri-devel <at> lists.freedesktop.org
[r600g] Firefox crashes with hardware acceleration turned on
critical
Unclassified
Linux (All)
ken20001 <at> ukr.net
x86-64 (AMD64)
NEW
10.1
Drivers/Gallium/r600
Mesa

Firefox (several versions: 29, 30, 31) always crashes on exit if hardware acceleration turned on (parameter "layers.acceleration.force-enabled" switched to "true"). Automatic crash report here: https://crash-stats.mozilla.com/report/index/e8397029-4c99-41a3-9cfc-a260e2140718
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
David Herrmann | 23 Jul 17:26 2014
Picon

[PATCH 00/12] DRM: Random Cleanups

Hi

A bunch of random cleanups I stumbled on when reworking the init-logic. Most of
them should be fairly trivial.

Also available in my fdo-repository:
   http://cgit.freedesktop.org/~dvdhrm/linux/log/?h=drm-next

Comments welcome!
David

David Herrmann (12):
  drm: remove unused "struct drm_freelist"
  drm: drop unused "struct drm_queue"
  drm: call ->firstopen() before ->open()
  drm: extract legacy ctxbitmap flushing
  drm: drop i386 verification
  drm: fix __alpha__ PCI lookup
  drm: drop redundant drm_file->is_master
  drm: don't de-authenticate clients on master-close
  drm: move module initialization to drm_stub.c
  drm: merge drm_drv.c into drm_ioctl.c
  drm: make minor->index available early
  drm: make sysfs device always available for minors

 drivers/gpu/drm/drm_bufs.c                 |  17 +-
 drivers/gpu/drm/drm_context.c              |  30 ++
 drivers/gpu/drm/drm_crtc.c                 |   2 +-
 drivers/gpu/drm/drm_drv.c                  | 471 -----------------------------
 drivers/gpu/drm/drm_fops.c                 | 227 +++++---------
 drivers/gpu/drm/drm_info.c                 |   2 +-
 drivers/gpu/drm/drm_ioctl.c                | 369 +++++++++++++++++++++-
 drivers/gpu/drm/drm_lock.c                 |   2 +-
 drivers/gpu/drm/drm_stub.c                 | 231 ++++++++++----
 drivers/gpu/drm/drm_sysfs.c                |  90 +++---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        |   2 +-
 include/drm/drmP.h                         |  52 +---
 13 files changed, 705 insertions(+), 794 deletions(-)
 delete mode 100644 drivers/gpu/drm/drm_drv.c

--

-- 
2.0.2
bugzilla-daemon | 23 Jul 14:06 2014

[Bug 81001] New: radeon: fence wait failed (-35) after hybrid suspend, leading to GPU reset and hangs

https://bugzilla.kernel.org/show_bug.cgi?id=81001

            Bug ID: 81001
           Summary: radeon: fence wait failed (-35) after hybrid suspend,
                    leading to GPU reset and hangs
           Product: Drivers
           Version: 2.5
    Kernel Version: 3.15+
          Hardware: i386
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Video(DRI - non Intel)
          Assignee: drivers_video-dri <at> kernel-bugs.osdl.org
          Reporter: iive <at> yahoo.com
        Regression: No

Created attachment 144041
  --> https://bugzilla.kernel.org/attachment.cgi?id=144041&action=edit
dmesg of suspend/resume session with radeon.ko dpm debug turned on

My hardware is Radeon HD5670 (Redwood).
To reproduce the problem boot vanilla 3.15.x kernel. Run in KMS mode (no Xorg
server needed). Then suspend to ram-and-disk with the following command:

`echo suspend  > /sys/power/disk; echo disk > /sys/power/state`

Resume from the power button. In `dmesg` you can find:

[   83.997399] [drm] ring test on 5 succeeded in 1 usecs
[   83.997403] [drm] UVD initialized successfully.
[   83.997450] [drm] ib test on ring 0 succeeded in 0 usecs
[   83.997494] [drm] ib test on ring 3 succeeded in 1 usecs
[   94.137259] radeon 0000:01:00.0: ring 5 stalled for more than 10000msec
[   94.137263] radeon 0000:01:00.0: GPU lockup (waiting for 0x0000000000000004
last fence id 0x0000000000000002 on ring 5)
[   94.137265] [drm:uvd_v1_0_ib_test] *ERROR* radeon: fence wait failed (-35).
[   94.137268] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on
ring 5 (-35).

At this point if Xorg server is started, any attempt to vdpau hardware decoding
would fail.
If the computer is left working, without reboot, at some point timeout would
trigger and GPU restart might be attempted, usually hanging the system. (I took
the following log from older GPU restart, probably successful).

[    0.000000] Linux version 3.15.2 (root) (gcc version 4.8.3 (GCC) ) #2 SMP
[12398.387691] radeon 0000:01:00.0: ring 5 stalled for more than 242796msec
[12398.387699] radeon 0000:01:00.0: GPU lockup (waiting for 0x0000000000000005
last fence id 0x0000000000000004 on ring 5)
[12398.425151] radeon 0000:01:00.0: Saved 23 dwords of commands on ring 0.
[12398.425167] radeon 0000:01:00.0: GPU softreset: 0x00000009
[12398.425169] radeon 0000:01:00.0:   GRBM_STATUS               = 0xF5703828
[12398.425171] radeon 0000:01:00.0:   GRBM_STATUS_SE0           = 0xFC000007
[12398.425173] radeon 0000:01:00.0:   GRBM_STATUS_SE1           = 0x00000007
[12398.425175] radeon 0000:01:00.0:   SRBM_STATUS               = 0x200800C0
[12398.425177] radeon 0000:01:00.0:   SRBM_STATUS2              = 0x00000000
[12398.425179] radeon 0000:01:00.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[12398.425181] radeon 0000:01:00.0:   R_008678_CP_STALLED_STAT2 = 0x40000000
[12398.425183] radeon 0000:01:00.0:   R_00867C_CP_BUSY_STAT     = 0x00008004
[12398.425185] radeon 0000:01:00.0:   R_008680_CP_STAT          = 0x80228647
[12398.425187] radeon 0000:01:00.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[12398.441572] radeon 0000:01:00.0: GRBM_SOFT_RESET=0x00007F6B
[12398.441626] radeon 0000:01:00.0: SRBM_SOFT_RESET=0x00000100
[12398.442782] radeon 0000:01:00.0:   GRBM_STATUS               = 0x00003828
[12398.442783] radeon 0000:01:00.0:   GRBM_STATUS_SE0           = 0x00000007
[12398.442785] radeon 0000:01:00.0:   GRBM_STATUS_SE1           = 0x00000007
[12398.442787] radeon 0000:01:00.0:   SRBM_STATUS               = 0x200800C0
[12398.442789] radeon 0000:01:00.0:   SRBM_STATUS2              = 0x00000000
[12398.442791] radeon 0000:01:00.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[12398.442793] radeon 0000:01:00.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
[12398.442795] radeon 0000:01:00.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
[12398.442796] radeon 0000:01:00.0:   R_008680_CP_STAT          = 0x00000000
[12398.442798] radeon 0000:01:00.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[12398.442813] radeon 0000:01:00.0: GPU reset succeeded, trying to resume
[12398.512161] [drm] enabling PCIE gen 2 link speeds, disable with
radeon.pcie_gen2=0
[12398.516583] [drm] PCIE GART of 1024M enabled (table at 0x000000000025D000).

The bug vanishes if only suspend to ram or suspend to disk is used.

I tried to do a bisect, but a number of rc kernels seem to hang on me, long
before radeon module is loaded. At this point bisect is not feasible.

I suspected that the new async suspend/resume code might be at fault, as I was
seeing video card been turned off (aka monitor going off) and then turning on,
a moment before shutting down completely.

So I found the commits of the async suspend (from an article) and reverted
them.
Reverting 200421a80f6e0a9e39d698944cc35cba103eb6ce,
3c31b52f96f7b559d950b16113c0f68c72a1985e seems to avoid the above effect about
monitor turning off, on, then off again. But it does not fix this bug. 

Reverting 
7cd0602d7836c0056fe9bdab014d5ac5ec5cb291,
92858c476ec4e99cf0425f05dee109b6a55eb6f8 and
9e5e7910df824ba02aedd2b5d2ca556426ea6d0b,
76569faa62c46382e080c3e190c66e19515aae1c,
de377b3972729f00ee236ae4a97393e282ffe391,
28b6fd6e37792b16a56d324841bdb20ab78e4522,
a59ffb2062df3a5c346dbed931fa1e587fd0f0f3
doesn't affect the bug either, so I assume that this bug is not related to
suspend/resume async changes.

If you cannot reproduce the problem, please advice me what commits to revert.

This bugreport copy of https://bugs.freedesktop.org/show_bug.cgi?id=81620

--

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
Christian König | 23 Jul 11:47 2014
Picon

Re: [Nouveau] [PATCH 09/17] drm/radeon: use common fence implementation for fences

Am 23.07.2014 11:44, schrieb Daniel Vetter:
> On Wed, Jul 23, 2014 at 11:39 AM, Daniel Vetter <daniel.vetter <at> ffwll.ch> wrote:
>> The scheduler needs to keep track of a lot of fences, so I think we'll
>> have to register callbacks, not a simple wait function. We must keep
>> track of all the non-i915 fences for all oustanding batches. Also, the
>> scheduler doesn't eliminate the hw queue, only keep it much slower so
>> that we can sneak in higher priority things.
>>
>> Really, scheduler or not is orthogonal.
> Also see my other comment about interactions between wait_fence and
> the i915 reset logic. We can't actually use it from within the
> scheduler code since that would deadlock.

Yeah, I see. You would need some way to abort the waiting on other 
devices fences in case of a lockup.

What about an userspace thread to offload waiting and command submission to?

Just playing with ideas right now,
Christian.

> -Daniel
Christian König | 23 Jul 09:47 2014
Picon

[PATCH] drm/radeon: fix irq ring buffer overflow handling

From: Christian König <christian.koenig <at> amd.com>

We must mask out the overflow bit as well, otherwise
the wptr will never match the rptr again and the interrupt
handler will loop forever.

Signed-off-by: Christian König <christian.koenig <at> amd.com>
Cc: stable <at> vger.kernel.org
---
 drivers/gpu/drm/radeon/cik.c       | 1 +
 drivers/gpu/drm/radeon/evergreen.c | 1 +
 drivers/gpu/drm/radeon/r600.c      | 1 +
 drivers/gpu/drm/radeon/si.c        | 1 +
 4 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 0b24711..cc1f02f 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
 <at>  <at>  -7376,6 +7376,7  <at>  <at>  static inline u32 cik_get_ih_wptr(struct radeon_device *rdev)
 		tmp = RREG32(IH_RB_CNTL);
 		tmp |= IH_WPTR_OVERFLOW_CLEAR;
 		WREG32(IH_RB_CNTL, tmp);
+		wptr &= ~RB_OVERFLOW;
 	}
 	return (wptr & rdev->ih.ptr_mask);
 }
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 250bac3..15e4f28 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
 <at>  <at>  -4756,6 +4756,7  <at>  <at>  static u32 evergreen_get_ih_wptr(struct radeon_device *rdev)
 		tmp = RREG32(IH_RB_CNTL);
 		tmp |= IH_WPTR_OVERFLOW_CLEAR;
 		WREG32(IH_RB_CNTL, tmp);
+		wptr &= ~RB_OVERFLOW;
 	}
 	return (wptr & rdev->ih.ptr_mask);
 }
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index c66952d..3c69f58 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
 <at>  <at>  -3795,6 +3795,7  <at>  <at>  static u32 r600_get_ih_wptr(struct radeon_device *rdev)
 		tmp = RREG32(IH_RB_CNTL);
 		tmp |= IH_WPTR_OVERFLOW_CLEAR;
 		WREG32(IH_RB_CNTL, tmp);
+		wptr &= ~RB_OVERFLOW;
 	}
 	return (wptr & rdev->ih.ptr_mask);
 }
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index eba0225..9e854fd 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
 <at>  <at>  -6103,6 +6103,7  <at>  <at>  static inline u32 si_get_ih_wptr(struct radeon_device *rdev)
 		tmp = RREG32(IH_RB_CNTL);
 		tmp |= IH_WPTR_OVERFLOW_CLEAR;
 		WREG32(IH_RB_CNTL, tmp);
+		wptr &= ~RB_OVERFLOW;
 	}
 	return (wptr & rdev->ih.ptr_mask);
 }
--

-- 
1.9.1

_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 23 Jul 08:44 2014

[Bug 76998] hang on CEDAR right after log on

changed bug 76998
What Removed Added
Status NEW RESOLVED
Resolution --- FIXED

Comment # 10 on bug 76998 from I am closing this bug as the fix has landed in kernels 3.16-rc5, 3.15.6, 3.14.13, 3.12.25 and 3.10.49 .
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Stephen Rothwell | 23 Jul 05:18 2014
Picon
Picon

linux-next: manual merge of the drm-intel tree with the drm tree

Hi all,

Today's linux-next merge of the drm-intel tree got a conflict in
drivers/gpu/drm/i915/intel_dp.c between commit b19729617929 ("drm/i915:
fix psr match conditions screw ups") from the drm tree and commit
24acaf94ed4a ("drm/i915: Fix up PSR frontbuffer tracking") from the
drm-intel tree.

I fixed it up (I think - see below) and can carry the fix as necessary
(no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr <at> canb.auug.org.au

diff --cc drivers/gpu/drm/i915/intel_dp.c
index eda73ea3002f,9274ddfd78c7..000000000000
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
 <at>  <at>  <at>  -1801,20 -1762,17 +1796,18  <at>  <at>  <at>  static bool intel_edp_psr_match_conditi
  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
  	struct drm_device *dev = dig_port->base.base.dev;
  	struct drm_i915_private *dev_priv = dev->dev_private;
 -	struct drm_crtc *crtc = dig_port->base.base.crtc;
 -	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 +	struct drm_crtc *crtc;
 +	struct intel_crtc *intel_crtc;
- 	struct drm_i915_gem_object *obj;
- 	struct intel_encoder *intel_encoder = &dp_to_dig_port(intel_dp)->base;

- 	dev_priv->psr.source_ok = false;
+ 	lockdep_assert_held(&dev_priv->psr.lock);
+ 	lockdep_assert_held(&dev->struct_mutex);
+ 	WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex));
++	crtc = dig_port->base.base.crtc;
+ 	WARN_ON(!drm_modeset_is_locked(&crtc->mutex));

- 	if (!HAS_PSR(dev)) {
- 		DRM_DEBUG_KMS("PSR not supported on this platform\n");
- 		return false;
- 	}
+ 	dev_priv->psr.source_ok = false;

- 	if (IS_HASWELL(dev) && (intel_encoder->type != INTEL_OUTPUT_EDP ||
- 				dig_port->port != PORT_A)) {
+ 	if (IS_HASWELL(dev) && dig_port->port != PORT_A) {
  		DRM_DEBUG_KMS("HSW ties PSR to DDI A (eDP)\n");
  		return false;
  	}
 <at>  <at>  <at>  -1847,11 -1786,6 +1821,7  <at>  <at>  <at> 
  	if (IS_BROADWELL(dev))
  		goto out;

- 	if (I915_READ(SPRCTL(intel_crtc->pipe)) & SPRITE_ENABLE) {
- 		DRM_DEBUG_KMS("PSR condition failed: Sprite is Enabled\n");
- 		return false;
- 	}
- 
++	intel_crtc = to_intel_crtc(crtc);
  	if (I915_READ(HSW_STEREO_3D_CTL(intel_crtc->config.cpu_transcoder)) &
  	    S3D_ENABLE) {
  		DRM_DEBUG_KMS("PSR condition failed: Stereo 3D is Enabled\n");
 <at>  <at>  <at>  -3712,10 -3620,7 +3753,8  <at>  <at>  <at>  intel_dp_detect(struct drm_connector *c
  	enum drm_connector_status status;
  	enum intel_display_power_domain power_domain;
  	struct edid *edid = NULL;
 +	bool ret;

- 	intel_runtime_pm_get(dev_priv);
- 
  	power_domain = intel_display_port_power_domain(intel_encoder);
  	intel_display_power_get(dev_priv, power_domain);

_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Gmane