Re: [Nouveau] [PATCH] drm/nouveau: Ack interrupts for some fuc engines
Op 25-03-13 19:14, Marcin Slusarz schreef: On Mon, Mar 25, 2013 at 10:22:37AM +0100, Maarten Lankhorst wrote: Fixes 100% cpu usage when the exit interrupt never got acked. Signed-off-by: Maarten Lankhorst m.b.lankho...@gmail.com --- diff --git a/drivers/gpu/drm/nouveau/core/core/falcon.c b/drivers/gpu/drm/nouveau/core/core/falcon.c index e05c157..b11c5f3 100644 --- a/drivers/gpu/drm/nouveau/core/core/falcon.c +++ b/drivers/gpu/drm/nouveau/core/core/falcon.c @@ -229,6 +229,24 @@ _nouveau_falcon_fini(struct nouveau_object *object, bool suspend) return nouveau_engine_fini(falcon-base, suspend); } +void +nouveau_falcon_intr(struct nouveau_subdev *subdev) +{ +struct nouveau_falcon *falcon = (void*)subdev; +u32 intr = nv_ro32(falcon, 0x008); + +nv_wo32(falcon, 0x004, intr); + +if (intr 0x10) { +intr = ~0x10; + +nv_info(falcon, Exit interrupt called\n); Do you really want to print it at info level? How frequent it is? It shouldn't be often, I want it to run at the error level since that usually means the firmware exited prematurely/crashed and things go bad, but it happens with the secret scrubber finishing on initialization too. That one is harmless though. +} + +if (intr) +nv_error(falcon, Unhandled interrupt %08x\n, intr); +} + int nouveau_falcon_create_(struct nouveau_object *parent, struct nouveau_object *engine, ___ dri-devel mailing list dri-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau
[Nouveau] [Bug 58378] Distorted graphics on NVIDIA GeForce 8400M G after upgrade the kernel to 3.7.0 version
https://bugs.freedesktop.org/show_bug.cgi?id=58378 --- Comment #10 from Paulo Castro pauloedgarcas...@gmail.com --- Hi. I have exactly the same issue. I seem to be able to trigger it faster by opening firefox on a page with many images. Current Kernel: 3.8.3-103.fc17.x86_64 Other kernels affected: kernel-3.7.9-104.fc17.x86_64 kernel-3.7.9-101.fc17.x86_64 01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8300 GS] (rev a1) (prog-if 00 [VGA controller]) Subsystem: nVidia Corporation Device 0494 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at fa00 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at d000 (64-bit, prefetchable) [size=256M] Region 3: Memory at f800 (64-bit, non-prefetchable) [size=32M] Region 5: I/O ports at df00 [size=128] [virtual] Expansion ROM at fb00 [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: Data: Capabilities: [78] Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s 512ns, L1 4us ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM unknown, Latency L0 512ns, L1 4us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb:Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0:Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb:Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- Capabilities: [128 v1] Power Budgeting ? Capabilities: [600 v1] Vendor Specific Information: ID=0001 Rev=1 Len=024 ? Kernel driver in use: nouveau -- You are receiving this mail because: You are the assignee for the bug. ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] [PATCH] drm/nouveau: Ack interrupts for some fuc engines
On Tue, Mar 26, 2013 at 07:29:24AM +0100, Maarten Lankhorst wrote: Op 25-03-13 19:14, Marcin Slusarz schreef: On Mon, Mar 25, 2013 at 10:22:37AM +0100, Maarten Lankhorst wrote: Fixes 100% cpu usage when the exit interrupt never got acked. Signed-off-by: Maarten Lankhorst m.b.lankho...@gmail.com --- diff --git a/drivers/gpu/drm/nouveau/core/core/falcon.c b/drivers/gpu/drm/nouveau/core/core/falcon.c index e05c157..b11c5f3 100644 --- a/drivers/gpu/drm/nouveau/core/core/falcon.c +++ b/drivers/gpu/drm/nouveau/core/core/falcon.c @@ -229,6 +229,24 @@ _nouveau_falcon_fini(struct nouveau_object *object, bool suspend) return nouveau_engine_fini(falcon-base, suspend); } +void +nouveau_falcon_intr(struct nouveau_subdev *subdev) +{ + struct nouveau_falcon *falcon = (void*)subdev; + u32 intr = nv_ro32(falcon, 0x008); + + nv_wo32(falcon, 0x004, intr); + + if (intr 0x10) { + intr = ~0x10; + + nv_info(falcon, Exit interrupt called\n); Do you really want to print it at info level? How frequent it is? It shouldn't be often, I want it to run at the error level since that usually means the firmware exited prematurely/crashed and things go bad, but it happens with the secret scrubber finishing on initialization too. That one is harmless though. Maybe it should say: nv_error(falcon, firmware exited prematurely\n); ? + } + + if (intr) + nv_error(falcon, Unhandled interrupt %08x\n, intr); +} + int nouveau_falcon_create_(struct nouveau_object *parent, struct nouveau_object *engine, ___ dri-devel mailing list dri-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau