Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Excessive CPU load by the xorg-server and GUI's hard lags #401

Closed
eshkrig opened this issue Jan 18, 2017 · 7 comments
Closed

Excessive CPU load by the xorg-server and GUI's hard lags #401

eshkrig opened this issue Jan 18, 2017 · 7 comments
Labels
bug Something isn't working

Comments

@eshkrig
Copy link

eshkrig commented Jan 18, 2017

Hi!
Sorry for my English.

I use vnc xorg-module for remote support users.

In September 2016 I have updated xorg-server, tigervnc, xf86-video-ati and related packages.

Packages versions before updating:
xorg-server-1.17.4
xf86-video-ati-7.5.0
tigervnc-1.4.2-r2

Packages versions after updating:
xorg-server-1.18.4
xf86-video-ati-7.7.0
tigervnc-1.6.0-r2

I faced the problem of excessive CPU load by the xorg-server and GUI's hard lags.
I found that disabling vnc module in xorg.conf eliminates the problem.

The problem occurs only with video cards AMD.

I recently noticed that the problem only occurs when monitor connected via DVI.
When monitor connected through VGA everything works as it should.

To date, kernel version 4.4.39, but different versions 4.4.6 - 4.4.39 have no effect on the problem.
I tried version xf86-video-ati-7.8.0 and tigervnc-1.7.0 - the problem persists.

Distribution - Gentoo.

The attached files Xorg.0.log, /proc/cpuinfo, output of dmesg, lspci, dmidecode.

attach.zip

@CendioOssman
Copy link
Member

If it only happens on one port then it sounds like a problem in the video driver. Have you talked to the radeon developers and seen if they have some insight?

@eshkrig
Copy link
Author

eshkrig commented Jan 19, 2017

I added a bug report to xorg driver/radeon: https://bugs.freedesktop.org/show_bug.cgi?id=99457

@CendioOssman
Copy link
Member

Great. I'll close this issue right now, but please comment if there turns out to be something we can do to improve the situation.

@CendioOssman CendioOssman added the notourbug This issue needs to be resolved elsewhere label Jan 19, 2017
@eshkrig
Copy link
Author

eshkrig commented Feb 13, 2017

Please, reopen and see comment https://bugs.freedesktop.org/show_bug.cgi?id=99457#c30

@CendioOssman CendioOssman reopened this Feb 13, 2017
@CendioOssman CendioOssman added bug Something isn't working and removed notourbug This issue needs to be resolved elsewhere labels Feb 13, 2017
@CendioOssman
Copy link
Member

Please try 84c72fe and see if that fixes the issue for you.

@eshkrig
Copy link
Author

eshkrig commented Feb 13, 2017

Thank you. All works fine.
I am currently using version tigervnc-1.7.1. I was able to apply 84c72fe only after small changes:
diff -Naur tigervnc-1.7.1.orig/unix/xserver/hw/vnc/vncHooks.c tigervnc-1.7.1/unix/xserver/hw/vnc/vncHooks.c
--- tigervnc-1.7.1.orig/unix/xserver/hw/vnc/vncHooks.c 2017-01-18 15:39:28.000000000 +0300
+++ tigervnc-1.7.1/unix/xserver/hw/vnc/vncHooks.c 2017-02-13 17:22:20.854082779 +0300
@@ -1033,12 +1033,21 @@

// Unwrap and rewrap helpers

+#if XORG >= 116
+#define GC_OP_PROLOGUE(pGC, name)\
+ vncHooksGCPtr pGCPriv = vncHooksGCPrivate(pGC);\
+ const GCFuncs *oldFuncs = pGC->funcs;\
+ pGC->funcs = pGCPriv->wrappedFuncs;\
+ pGC->ops = pGCPriv->wrappedOps; \
+ DBGPRINT((stderr,"vncHooks" #name " called\n"))
+#else
#define GC_OP_PROLOGUE(pGC, name)\
vncHooksGCPtr pGCPriv = vncHooksGCPrivate(pGC);\
GCFuncs *oldFuncs = pGC->funcs;\
pGC->funcs = pGCPriv->wrappedFuncs;\
pGC->ops = pGCPriv->wrappedOps; \
DBGPRINT((stderr,"vncHooks" #name " called\n"))
+#endif

#define GC_OP_EPILOGUE(pGC)\
pGCPriv->wrappedOps = pGC->ops;\

@CendioOssman
Copy link
Member

Great. Putting this on master then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants