I used ftrace to do some duration measuring of the timer function
fb_flashcursor(). I noticed several places where this timer takes around
98 ms to complete. This time seems to be due to multiple calls to
__memcpy_toio() in ast_dirty_update():

        for (i = y; i <= y2; i++) {
                /* assume equal stride for now */
                src_offset = dst_offset = i * afbdev->afb.base.pitches[0] + (x 
* bpp);
                memcpy_toio(bo->kmap.virtual + src_offset, afbdev->sysram + 
src_offset, (x2 - x + 1) * bpp);


My theory is that this is causing mod_timer() to block on the other CPU, 
resulting in the soft lockup.

Also - I built a custom d-i using pristine 4.6-rc7, and I am able to
easily reproduce this. I think the next step here is to report this to
upstream.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1574814

Title:
  ThunderX: soft lockup in cursor_timer_handler() Edit

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1574814/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to