Re: [Nouveau] [PATCH] drm/nouveau: Ack interrupts for some fuc engines

2013-03-26 Thread Maarten Lankhorst
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

2013-03-26 Thread bugzilla-daemon
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

2013-03-26 Thread Marcin Slusarz
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