Commit 6fd5add0 authored by Chase Douglas's avatar Chase Douglas Committed by Keith Packard
Browse files

Log mieq enqueue overflow in a signal safe manner


Signed-off-by: default avatarChase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent 7f4a69b6
......@@ -276,23 +276,22 @@ mieqEnqueue(DeviceIntPtr pDev, InternalEvent *e)
*/
miEventQueue.dropped++;
if (miEventQueue.dropped == 1) {
ErrorF
("[mi] EQ overflowing. Additional events will be discarded until existing events are processed.\n");
ErrorFSigSafe("[mi] EQ overflowing. Additional events will be "
"discarded until existing events are processed.\n");
xorg_backtrace();
ErrorF
("[mi] These backtraces from mieqEnqueue may point to a culprit higher up the stack.\n");
ErrorF("[mi] mieq is *NOT* the cause. It is a victim.\n");
ErrorFSigSafe("[mi] These backtraces from mieqEnqueue may point to "
"a culprit higher up the stack.\n");
ErrorFSigSafe("[mi] mieq is *NOT* the cause. It is a victim.\n");
}
else if (miEventQueue.dropped % QUEUE_DROP_BACKTRACE_FREQUENCY == 0 &&
miEventQueue.dropped / QUEUE_DROP_BACKTRACE_FREQUENCY <=
QUEUE_DROP_BACKTRACE_MAX) {
ErrorF
("[mi] EQ overflow continuing. %lu events have been dropped.\n",
miEventQueue.dropped);
ErrorFSigSafe("[mi] EQ overflow continuing. %u events have been "
"dropped.\n", miEventQueue.dropped);
if (miEventQueue.dropped / QUEUE_DROP_BACKTRACE_FREQUENCY ==
QUEUE_DROP_BACKTRACE_MAX) {
ErrorF
("[mi] No further overflow reports will be reported until the clog is cleared.\n");
ErrorFSigSafe("[mi] No further overflow reports will be "
"reported until the clog is cleared.\n");
}
xorg_backtrace();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment